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)
{
}
}
託管代碼無法處理長度超過260的路徑AFAIK ... IIRC唯一的選擇是通過pinvoke調用本地Windows API ... – Yahia
另外,這是您的真實代碼嗎?如果是這樣,那麼你不應該忽略例外。你最好完全刪除try/catch塊。 –
[爲什麼260字符路徑長度限制存在於Windows?](http://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows)包含有用的信息 – emartel