Directory.GetFiles没有返回正确数量的文件

时间:2012-10-10 18:07:17

标签: c#

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

它工作了大约一天左右,目录是空的,或者有一个文件。现在我去检查它,里面有746个文件。我在这一行之后加了一个断点:

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

其中MachineDir是我正在查看的目录(我仔细检查了目录字符串是否正确)。 WatcherFileType是.ev1。

Directory.GetFiles有一些错误吗?或者可能是长时间运行此应用程序的东西。

2 个答案:

答案 0 :(得分:4)

您是否尝试将WatcherFileType设置为“* .ev1”

此外,您可能希望查看不使用轮询的FileSystemWatcher对象: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

答案 1 :(得分:-1)

查看 MSDN

中的this摘录

当扩展名正好为三个字符时,GetFiles会返回匹配的所有扩展程序以及以<3>字母扩展名开始的扩展程序。

所以, *.txt符合hello.txthello.txterhello.txtworld

Insted使用?.txt完全匹配hello.txt

此问题仅限于3个字母的扩展

所以你应该使用

?.ev1