如何刷新System.IO.DirectoryInfo.GetFiles()。长度

时间:2010-12-09 12:40:17

标签: c# directoryinfo getfiles

我无法在目录中获取最新数量的文件。这些文件正在从PDFCreator打印并发送到该文件夹​​。当文件夹中的文件数与正在打印的文件数相匹配时,它应该中断并继续我的代码。问题是计数没有保持uptodate,我不知道如何刷新它。这是我的代码:

System.IO.DirectoryInfo pdf = new System.IO.DirectoryInfo(@"C:\0TeklaBatchProcess\pdf");
int count = pdf.GetFiles().Length;

while (count != DE.GetSize())
{
    if (count < DE.GetSize())
    {
        pdf.Refresh();
    }
    else
    {
        break;
    }
}

如果有人可以告诉我如何刷新或更新文件数量,我会非常感激。

1 个答案:

答案 0 :(得分:5)

count是本地int - 更新的唯一方法是再次查询它。尝试将pdf.Refresh()替换为:

count = pdf.GetFiles().Length;

(实际上,Directory.GetFiles(di.FullName).Length可能更便宜)

然而! 想要在紧密的循环中执行此操作;可能会添加Sleep(1000)或(更好)使用FileSystemWatcher。更好的是;检查特定的文件,这样就不会积极地点击GetFiles()