2017-09-01 70 views
1

我試圖刪除一個文件,但我得到錯誤消息(拒絕訪問),即使我有完全的權限。最初我的文件將在我的根文件夾中。首先,我正在重命名該文件,然後將文件移動到另一個文件夾(在根文件夾之外),如下所示。在c中移動後無法刪除文件#

System.IO.File.Move(strPhysicalFolder+ tpfile,strPhysicalFolder+fName); 
System.IO.File.Move(strPhysicalFolder + fName, filePath + fName); 
System.IO.File.SetAttributes(filePath + fName, FileAttributes.Normal); 

現在,無論何時我嘗試刪除文件,我都會收到錯誤(拒絕訪問)。 下面是我的代碼:

string strFileFullPath = srcPath + filename; 
if (System.IO.File.Exists(strFileFullPath)) 
{ 
    System.IO.File.Delete(strFileFullPath); 
} 

strFileFullPath包含路徑到我無法刪除的文件。在刪除(設置屬性)之前,我需要做些什麼嗎?任何幫助,將不勝感激。謝謝。

+0

如果你去在資源管理器文件會發生什麼。你真的可以從代碼之外的新位置刪除它嗎? – Skintkingle

+0

注意,但要查找'System.IO.Path.Combine()' –

+2

沒有足夠的信息。你在移動和刪除之間做什麼?如果是這樣:什麼。另外:重命名和移動可以一步完成。另外:最好使用'System.IO.Path.Combine'的字符串連接。你確定所有路徑都正確(包括路徑分隔符)嗎? – LocEngineer

回答

3

聲音daft,但它可能會在文件夾的權限。

也許像下面這樣:

System.IO.File.SetAttributes(strFileFullPath, FileAttributes.Normal); 
System.IO.File.Delete(strFileFullPath); 
+0

謝謝湯姆。這工作。但是,我可以知道設置文件屬性的原因嗎? –

+1

這是前段時間我錯誤地發現的東西,我假設像我一樣,你可能將這個文件移動到你的'C:\'如果是這種情況,那麼文件屬性將被提升,你不能只進去和刪除(通過你的應用程序)。因此,您需要在刪除之前對其進行更改。 – Tom

+0

是的,我正在向c移動,因爲每當我將文件保存在根文件夾中時,它將直接被用戶訪問。所以我將所有文件移出根文件夾。 –