DirectoryInfo.GetFiles()间歇性地无法返回文件,即使文件夹有文件

时间:2014-09-10 00:45:50

标签: c# .net

我使用.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()间歇性失败导致文件夹中的任何文件丢失的原因是什么?

0 个答案:

没有答案