亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang os.Close() 函數有效,但 os.Remove() 函數無效

golang os.Close() 函數有效,但 os.Remove() 函數無效

Go
墨色風雨 2022-06-27 11:01:08
我正在嘗試創建一個文件,打開它,對其進行一些處理并關閉它。最后,我想刪除該文件。所有這些操作都成功執行,除了刪除。我的代碼是:package mainimport (    "fmt"    "os"    "log")func main() {    fmt.Println("Hello")    metaFileName := "./metadata.txt"    _, err2 := os.Create(metaFileName)    if err2 != nil {        log.Fatal(err2)    }        openMetaFile, err := os.Open(metaFileName)    if err != nil {        log.Fatal(err)    }        err = openMetaFile.Close()    if err != nil {        log.Fatal(err)    }        err = os.Remove(metaFileName)    if err != nil {        log.Fatal(err)    }        fmt.Println("Success")}輸出是:Hello2020/08/24 00:00:00 remove ./metadata.txt: The process cannot access the file because it is being used by another process.我對此一無所知
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

該問題與第一個打開的文件有關。


package main


import (

    "fmt"

    "log"

    "os"

)


const metaFileName = "./metadata.txt"


func main() {

    var (

        err                   error

        tmpFile, openMetaFile *os.File

    )


    fmt.Println("Hello")

    if tmpFile, err = os.Create(metaFileName); err != nil {

        log.Fatal(err)

    }


    if err = tmpFile.Close(); err != nil {

        log.Fatal(err)

    }


    if openMetaFile, err = os.Open(metaFileName); err != nil {

        log.Fatal(err)

    }


    if err = openMetaFile.Close(); err != nil {

        log.Fatal(err)

    }


    if err = os.Remove(metaFileName); err != nil {

        log.Fatal(err)

    }


    fmt.Println("Success")

}

如您所見,我使用 vara來關閉您打開的第一個文件。結果如下:


Hello

Success


查看完整回答
反對 回復 2022-06-27
  • 1 回答
  • 0 關注
  • 469 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號