1

私はFileSystemWatcherディレクトリでを使用していて、そのイベントハンドラーを追加し、そのEnableRaisingEvents=true;andを設定しIncludeSubdirectories=false;て追加しましNotifyFiltersた。

アプリケーションの実行中に、指定したディレクトリに新しいフォルダを作成すると、

FileNotFoundException:「ディレクトリの読み取り中にエラーが発生しました」。System.IO.FileSystemWatcher.StartRaisingEvents()System.IO.FileSystemWatcher.set_EnableRaisingEvents(ブール値)

問題の根本的な原因は何でしょうか?

StartRaisingEvents()ですか?

4

4 に答える 4

3

これは通常、FileSystemWatcherが信頼できない可能性があるためです。イベントを取得したときに、フォルダーが「完全に」存在しない場合があります。Directory.Exists()実際に IO 操作を実行する前に、十分に一時停止して再試行し、さまざまなチェックを行う必要がある場合があります。

于 2010-10-20T10:33:53.250 に答える
1

私はまったく同じ問題を抱えており、最終的に問題がパスにあることがわかりました。

パスが文字列の最後に空の文字を取得したが、それを管理できなかったとしても、ディレクトリが存在するというDirectory.Exist()答えを出します。FileSystemWatcherしたがって、明らかにDirectory.Exist()パスをトリムしますが、ウォッチャーはトリムしません。私の場合、空の文字を削除すると問題が解決します。

うまくいけば、誰かを助けることができます。

于 2016-01-09T21:34:32.303 に答える