0

Threading.Timerから2分ごとに起動する関数があります。この関数は(ハードコードされた)ディレクトリを調べ、その中のすべての.ev1ファイルを削除します。このディレクトリはサーバー上にあり、ファイルは約2分ごとに移動します。

約1日ほど機能したか、ディレクトリが空であるか、1つのファイルが含まれていました。今、私はそれをチェックしに行きました、そしてそれに746のファイルがあります。この行の後にブレークポイントを置きます:

String[] Files = System.IO.Directory.GetFiles(MachineDir, WatcherFileType, SearchOption.AllDirectories);

ここで、MachineDirは私が見ているディレクトリです(ディレクトリ文字列が正しいことを再確認しました)。WatcherFileTypeは.ev1です。

Directory.GetFilesにバグはありますか?または、このアプリを長期間実行することで何かが発生する可能性があります。

4

2 に答える 2

4

WatcherFileTypeを「*.ev1」に設定してみましたか

また、ポーリングを使用しないFileSystemWatcherオブジェクトを調べることもできます:http: //msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

于 2012-10-10T18:08:42.157 に答える
-1

MSDNからのこの抜粋を見てください

拡張子が正確に3文字の場合、一致GetFilesするすべての拡張子を返し、その3文字の拡張子で始まります。

だから、 一致*.txtしますhello.txt、、hello.txterhello.txtworld

?.txt完全に一致する意図された使用hello.txt

この問題は、3文字の拡張でのみ発生します

だからあなたは使うべきです

?.ev1
于 2012-10-10T18:18:12.387 に答える