2010-12-09 35 views
2

我无法获取目录中文件的最新数量。这些文件正在从PDFCreator打印并发送到该文件夹​​。当文件夹中的文件数量与正在打印的文件数量相符时,它应该中断并继续执行我的代码。问题是计数没有保持最新状态,我不知道如何刷新它。这是我的代码:如何刷新System.IO.DirectoryInfo.GetFiles()。长度

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; 
    } 
} 

如果有人能告诉我如何刷新或更新文件的数量,我会很感激。

回答

5

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

count = pdf.GetFiles().Length; 

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

但是!你不要想要在一个紧密的循环中做到这一点;可能会添加Sleep(1000),或者(更好)使用FileSystemWatcher。更好;请检查特定的文件,以免积极地击中GetFiles()

+0

count = pdf.GetFiles()。长度工作。非常感谢,不敢相信我没有尝试过。我曾尝试睡眠,但它没有奏效,因为伯爵还没有更新。我无法检查特定的文件,因为这些文件的名称始终不同。即使它现在正在工作,我对如何使用FileSystemWatcher检查文件数量感兴趣,因为您认为它比较好。你能告诉我如何? – Mutley 2010-12-09 20:16:26