2012-11-15 62 views
2

我想刪除一個目錄及其所有文件,並且它具有很長路徑的文件/目錄。 我試圖刪除的文件有一個很長的路徑(長於260)。 我怎樣才能刪除這個文件,儘管它的長度? 我使用下面的代碼:刪除文件生成異常「找不到路徑的一部分」

foreach (string archiveFolder in Archives) 
{ 
    try 
    { 
     DateTime creationTime = Directory.GetCreationTime(archiveFolder); 
     DateTime now = DateTime.Now; 
     DateTime passDate = creationTime.AddDays(numDaysBack); 
     if (passDate.CompareTo(now) < 0) 
     { 
      try 
      { 
       Directory.Delete(archiveFolder, true); 
      } 
      catch (Exception e) 
      { 
      } 
      //System.Console.WriteLine(creationTime); 

     } 
    } 
    catch (Exception e) 
    { 
    } 
} 
+1

託管代碼無法處理長度超過260的路徑AFAIK ... IIRC唯一的選擇是通過pinvoke調用本地Windows API ... – Yahia

+0

另外,這是您的真實代碼嗎?如果是這樣,那麼你不應該忽略例外。你最好完全刪除try/catch塊。 –

+0

[爲什麼260字符路徑長度限制存在於Windows?](http://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows)包含有用的信息 – emartel

回答

1

Directory.Delete是爲了刪除目錄,刪除文件使用File.Delete

他們都居住在System.IO,這種變化應該是微不足道的。

+0

我想刪除目錄及其所有文件,它有文件/目錄路徑很長 – mary

相關問題