2011-11-25 335 views
0

我正在從我的學校做一個項目,我試圖從Windows XP中刪除一個文件。訪問路徑被拒絕

但是,即使設置了文件的屬性,我仍然遇到此錯誤。

訪問路徑被拒絕」

該文件是C:\Document and Settings\%user%\Local Settings\Temp

這又如何解決呢?

if(File.Exists(filePath)) 
{     
    FileSecurity sec = File.GetAccessControl(filePath); 
    sec.AddAccessRule(new FileSystemAccessRule(Environment.UserName, 
        FileSystemRights.FullControl, AccessControlType.Allow)); 
    File.SetAccessControl(filePath, sec); 
    File.SetAttributes(filePath, FileAttributes.Normal); 
    File.Delete(filePath); 
} 
+0

哪行代碼拋出異常? – mjwills

+0

不要忘記檢查你想刪除的文件是否只讀。如果是這樣,即使您完全控制文件,也會收到錯誤。 – Peter

回答

0

這意味着,另一個程序正在使用文件
您必須先關閉文件(或整個程序),然後才能刪除它。

如果您的程序使用該文件,請務必關閉(不交叉)這些流。

+0

這是關於訪問路徑,而不是FileAccess問題(必然)。 – Polity

+0

不一定。這可能意味着用戶以非管理員身份運行(XP支持該功能),並且沒有權限更改訪問規則或訪問其他用戶的文件夾。 –

+0

@Polity:他應該總能訪問'C:\ Document and Settings \%user%\ Local Settings \ Temp'。 – SLaks

2

FileSecurity設置文件本身的權限。這很好,但這並不意味着你有權刪除它。嘗試以管理員身份運行您的應用,看看是否有所作爲。

0

檢查您是否擁有「admin」或相關權限來刪除文件。

如果您有管理權限,請檢查您提及的文件是否有其他「權限」例如:很少的MS文件不能被刪除。

檢查您是否指定了正確的文件名。

如果你已經驗證了所有這些,那麼這個文件要麼是你打開它的,要麼是你的代碼,你還沒有關閉它來刪除它。

即使上述解決方案不起作用,那麼此文件已損壞或其他用戶或您自己仍在使用未關閉的文件。

0

到目前爲止,代碼塊沒問題。

不過,請記住以下幾點:

a。在Windows XP的情況下,用戶登錄 - 確保用戶在管理員組中,並且用戶將具有管理員權限,因此用戶運行的任何應用程序都將具有管理員權限。

b。對於Vista,Windows 7等其他更新的Windows,請嘗試以管理員身份運行該應用程序(右鍵單擊應用程序並在彈出窗口中單擊「以管理員身份運行」,同時簽入開發時間 - 以管理員身份運行IDE )。

希望這會有所幫助。