簡體   English   中英

File.Delete不刪除文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM