我使用.NET 4.0构建在Windows Server 2008上运行的Windows服务应用程序。我使用DirectoryInfo.GetFiles()
为另一个文件夹中的文件获取FileInfo
个对象数组网络上的Windows Server 2008服务器。文件夹中始终存在与文件掩码匹配的文件。
代码每天运行一次,通常会查找并处理那里的所有文件。但是,大约每3或4天(有时5天)它返回而根本没有找到任何文件。如果我立即重新运行代码,它会像往常一样找到所有文件。 (如果不是手动重新运行它,但要等到代码在第二天的正常时间再次运行,它就会成功。而且,我从未见过它只返回一些文件 - 它&# 39; s全部或全部。)
以下是我使用的代码:
DirectoryInfo di = new DirectoryInfo("\\server\sourcefolder");
if (di.Exists)
{
FileInfo[] files = di.GetFiles("*.ext", SearchOption.TopDirectoryOnly);
if (files.Count() == 0)
{
// WRITE AN ERROR WARNING ENTRY IN THE EVENT LOG
}
else
{
// DO PROCESSING HERE
}
}
else
{
// WRITE AN ERROR WARNING ENTRY IN THE EVENT LOG
}
注意:最初,我没有检查文件夹是否存在,或者实际上是否有任何文件返回。处理文件的尝试显然失败了。添加代码来检查这些条件使我能够确定问题是GetFiles()
有时不会返回任何文件。
GetFiles()
间歇性失败导致文件夹中的任何文件丢失的原因是什么?