を検出するステータスポーリング
を使用してGOでファイルの変更を検出すると、ステータスポーリングを使用してファイルが変更されたときに検出できます。 GOはファイル変更通知のUNIX FCNTL()関数に直接相当するものを提供しませんが、ステータスポーリングはクロスプラットフォームソリューションを提供します:
func watchFile(filePath string) error { initialStat, err := os.Stat(filePath) if err != nil { return err } for { stat, err := os.Stat(filePath) if err != nil { return err } if stat.Size() != initialStat.Size() || stat.ModTime() != initialStat.ModTime() { break } time.Sleep(1 * time.Second) } return nil }
使用:
doneChan := make(chan bool) go func(doneChan chan bool) { defer func() { doneChanこのソリューションは、システムコールの効率を提供するのではなく、すべてのプラットフォームで機能し、さまざまなユースケースで十分な単純なアプローチを提供します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3