[英]File.Delete Not Deleting the File
我試圖刪除一個文件,但以下代碼不會這樣做。 它不會拋出異常,但文件仍然存在。 那可能嗎?
try
{
File.Delete(@"C:\File.txt");
}
catch(Exception e)
{
Console.WriteLine(e);
}
如果無法刪除該文件,則應打印出異常,但不會。 它是否應該靜默失敗(如在File.Delete方法中吞下任何錯誤)?
如果指定的文件不存在, File.Delete
不會拋出異常。 [某些以前版本的MSDN文檔錯誤地聲明它確實如此]。
try
{
string filename = @"C:\File.txt";
if (File.Exists(filename))
{
File.Delete(filename);
}
else
{
Debug.WriteLine("File does not exist.");
}
}
catch(Exception e)
{
Console.WriteLine(e);
}
檢查文件的路徑是否正確。 如果文件不存在,則不會拋出異常。 如果在Windows中設置了“隱藏已知文件類型的擴展名”,則常常會將名為File.txt
的文件與名為File.txt.txt
的文件混淆。
你確定文件名是否正確? 它不會拋出錯誤的唯一時間是文件不存在。 愚蠢的問題,但你有沒有機會在文件名中輸入錯字? 或路徑中的錯誤?
另一種可能性是該文件仍在某些后台進程中使用。 然后它不會失敗,但它不會刪除該文件。
另一個例子可能是刪除請求處於一種排隊狀態。 例如,文件已被鎖定,因為它在被另一個進程編輯后尚未關閉。 如果是這種情況,您可以更改該過程以正確關閉文件或終止進程,文件將消失。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.