<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### Go的文件系統通知 官網地址:https://github.com/fsnotify/fsnotify fsnotify利用golang.org/x/sys而不是syscall從標準庫。通過運行以下命令確保已安裝最新版本: ``` go get -u golang.org/x/sys/... ``` ### 常問問題 當文件移到另一個目錄時,仍在監視它嗎? 不(不應該這樣,除非您正在觀看它的移動位置)。 當我查看目錄時,是否也監視所有子目錄? 不,您必須為要觀看的任何目錄添加監視(路線圖#18上有一個遞歸監視程序)。 我是否必須在單獨的goroutine中觀看錯誤和事件通道? 截至目前,是的。正在考慮使此單線程友好(請參閱howeyc#7) 為什么我在OS X上收到同一文件的多個事件? 在OS X上對Spotlight進行索引可能會導致多個事件(請參見howeyc#62)。臨時的解決方法是將您的文件夾添加到Spotlight隱私設置中,直到我們具有本機FSEvents實現(請參閱#11)。 一次可以查看多少個文件? 對于可創建的手表數量,存在特定于操作系統的限制: + Linux:/ proc / sys / fs / inotify / max_user_watches包含該限制,達到此限制將導致“設備上沒有剩余空間”錯誤。 + BSD / OSX:sysctl變量“ kern.maxfiles”和“ kern.maxfilesperproc”達到這些限制會導致“打開的文件太多”錯誤。 為什么通知不能與NFS文件系統或用戶空間(FUSE)中的文件系統一起使用? fsnotify需要底層操作系統的支持才能正常工作。當前的NFS協議不為文件通知提供網絡級別的支持。 ```go package main import ( "fmt" "log" "os" "path/filepath" "github.com/fsnotify/fsnotify" ) func main() { watch, _ := fsnotify.NewWatcher() w := Watch{ watch: watch, } w.watchDir("./web") select {} } type Watch struct { watch *fsnotify.Watcher } func (w *Watch) watchDir(dir string) { filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if info.IsDir() { path, err := filepath.Abs(path) if err != nil { return err } err = w.watch.Add(path) if err != nil { return err } } return nil }) log.Println("監控服務已經啟動") go func() { for { select { case ev := <-w.watch.Events: { if ev.Op&fsnotify.Create == fsnotify.Create { fmt.Println("創建文件 : ", ev.Name) fi, err := os.Stat(ev.Name) if err == nil && fi.IsDir() { w.watch.Add(ev.Name) fmt.Println("添加監控 : ", ev.Name) } } if ev.Op&fsnotify.Write == fsnotify.Write { fmt.Println("寫入文件 : ", ev.Name) } if ev.Op&fsnotify.Remove == fsnotify.Remove { fmt.Println("刪除文件 : ", ev.Name) fi, err := os.Stat(ev.Name) if err == nil && fi.IsDir() { w.watch.Remove(ev.Name) fmt.Println("刪除監控 : ", ev.Name) } } if ev.Op&fsnotify.Rename == fsnotify.Rename { fmt.Println("重命名文件 : ", ev.Name) w.watch.Remove(ev.Name) } } case err := <-w.watch.Errors: { fmt.Println("error : ", err) return } } } }() } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看