我从Threading.Timer每2分钟就有一个函数。该函数通过一个目录(硬编码)并删除其中的所有.ev1文件。此目录位于服务器上,每隔约2分钟移动一个文件。
它工作了大约一天左右,目录是空的,或者有一个文件。现在我去检查它,里面有746个文件。我在这一行之后加了一个断点:
String[] Files = System.IO.Directory.GetFiles(MachineDir, WatcherFileType, SearchOption.AllDirectories);
其中MachineDir是我正在查看的目录(我仔细检查了目录字符串是否正确)。 WatcherFileType是.ev1。
Directory.GetFiles有一些错误吗?或者可能是长时间运行此应用程序的东西。
答案 0 :(得分:4)
您是否尝试将WatcherFileType设置为“* .ev1”
此外,您可能希望查看不使用轮询的FileSystemWatcher对象: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
答案 1 :(得分:-1)
查看 MSDN
中的this摘录当扩展名正好为三个字符时,GetFiles
会返回匹配的所有扩展程序以及以<3>字母扩展名开始的扩展程序。
所以,
*.txt
符合hello.txt
,hello.txter
,hello.txtworld
Insted使用?.txt
完全匹配hello.txt
。
此问题仅限于3个字母的扩展
所以你应该使用
?.ev1