2010-06-28 83 views
-1

我想使用刪除功能刪除文件。如何使用c#刪除文件?

 foreach (string file1 in filePaths) 
     { 
      file = Path.GetFileName(file1); 

      while (reader.Read()) 
      { 
       client = reader["name"].ToString(); 
       filename = reader[2].ToString(); 

       if (filename != file) 
        flag = 1; 

       else 
        flag = 0; 

      } 
      if (flag == 1) 
      { 
       sw.WriteLine(file); 

       File.Delete(file); 

       data_count++; 
      } 


     } 

我的文件沒有被刪除。

+3

如果文件沒有被刪除會發生什麼?你是否遇到異常? – 2010-06-28 06:57:39

+1

是否有例外?你是否在File.Delete上設置了斷點,以檢查它是否應該被刪除? – Jens 2010-06-28 06:58:40

+1

增加您的接受百分比 – 2010-06-28 07:04:14

回答

2

那麼,你沒有提供足夠的信息來真正讓我們幫助你。你的代碼意思是要做什麼?

嫌疑的問題是,你的flag變量(看起來也許應該是bool類型,而不是int的)是在while循環的最後一次迭代完全依賴。基本上你的代碼現在說:「如果讀者的最終記錄談論另一個文件,則刪除該文件。」

這就是你要的想要的這要說嗎?

注意,foreach循環的第一次迭代會從reader讀取完成......後續的迭代將永遠不會讀取任何數據,也確實會使用的flag現有值。所以你最終會刪除全部的文件或其中。再次,我懷疑這是你真正想要做的。

嫌疑你實際上應該從reader讀一個循環,建立一系列文件名,然後通過你的「候選人」文件另一個循環。但沒有更多的信息,很難說肯定。

+0

實際上,我想搜索文件在SQL Server中,如果它不存在那麼所以刪除此文件,並在日誌文件中寫入信息意味着哪個文件被刪除。 – 2010-06-28 07:16:20

+0

@jiya:對,從SQL服務器讀取所有文件,建立一個列表(或者如果您使用的是.NET 3.5或更高版本,則使用HashSet ),然後刪除不在該集合中的文件。 – 2010-06-28 08:13:08