0

我从 Threading.Timer 每 2 分钟触发一次函数。该函数通过一个目录(硬编码)并删除其中的所有 .ev1 文件。该目录位于服务器上,每隔约 2 分钟就有一个文件移动到该目录中。

它工作了大约一天左右,目录是空的,或者里面有 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的摘录

当扩展名正好是三个字符时,GetFiles将返回所有匹配的扩展名并该 3 个字母的扩展名开头。

因此, *.txt将匹配hello.txt, hello.txter,hello.txtworld

Insted 使用?.txthello.txt完全匹配。

此问题仅适用于 3 个字母扩展

所以你应该使用

?.ev1
于 2012-10-10T18:18:12.387 回答