使用Go時,我正在編寫一個小型實用程序,部分需要注意打開文件的文件名是否更改。下面的代碼說明了我想盡了辦法:如何檢測Golang中打開文件的文件名更改
package main
import "os"
import "fmt"
import "time"
func main() {
path := "data.txt"
file, _ := os.Open(path)
for {
details, _ := file.Stat()
fmt.Println(details.Name())
time.Sleep(5 * time.Second)
}
}
這只是開始無休止循環,運行file.Stat()
獲得每5秒文件的詳細信息,然後打印出了名。但是,儘管在運行時更改了文件名,但上述內容的輸出不會改變。
替換details.Name()
與確實會注意到文件大小的變化。
這僅僅是我的Go版本中的錯誤,還是我只是在做錯事情?我無法在任何地方找到這樣的問題。
我在Mac上運行此版本,使用Go版本1.1.1(darwin/amd64)。
預先感謝任何答覆:)
[fsnotify](https://github.com/howeyc/fsnotify)可能會幫助你。 –