2017-04-22 81 views
-1

我試圖刪除圖像目錄中的所有圖像除了圖片框加載的最後一個圖像,並使用日以下代碼來實現這一目標,但仍然得到文件中使用的例外C#中刪除所有文件,但不會持續一個

System.IO.DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\Images\\"); 

      foreach (FileInfo file in di.GetFiles()) 
      { 
       if(file.FullName!=pictureBoxLoadImage.ImageLocation) 
       file.Delete(); 
      } 
+0

沒有你的if語句的最後一個影像返回「假」? –

回答

1

這應該工作,它跳過從文件中的最後一個文件,並刪除其餘

System.IO.DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\Images\\"); 
    var files = di.GetFiles(); 
    files.AsParallel().Reverse().Skip(1).ForAll((f) => f.Delete()); 
+0

感謝兄弟,它現在的工作 – virux99

+0

爲什麼你需要第二次電話撥打反向? – Steve

+0

@Steve不需要:) – Sajeetharan

0

我覺得這裏ImageLocation返回您的圖片的相對路徑,這將使你的if語句返回true總是甚至最後圖像,解決這個問題,你應該把由ImageLocation回到了絕對路徑的路徑:

System.IO.DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\Images\\"); 

foreach (FileInfo file in di.GetFiles()) 
{ 
    if(file.FullName!= Path.GetFullPath(pictureBoxLoadImage.ImageLocation)) 
     file.Delete(); 
} 
相關問題