2010-12-09 36 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