2013-03-16 53 views
0

我正在編寫一個軟件,可以刪除臨時文件,預取數據,最近文件夾中的文件等。我的問題是我可以從Temp文件夾中成功刪除文件,但是當我嘗試使用Recent文件夾時,會引發異常「拒絕訪問路徑...」。 PS:根據其他一些問題,我已經將文件屬性設置爲正常,但仍然沒有運氣。請幫我解決這個問題。爲了您更好的瞭解,我把一些代碼在這裏:無法刪除最近文件夾中的文件

public Boolean CleanRecentData() 
{ 
     isAllClean = true; 
     String SysRecentPath = System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\Recent"; 
     DirectoryInfo SysRecDir = new DirectoryInfo(SysRecentPath); 
     File.SetAttributes(SysRecentPath, FileAttributes.Normal); 

foreach (FileInfo fi in SysRecDir.GetFiles()) //Access Denied 
               //Exception is thrown here 
     { 
      try 
      { 
       fi.Delete(); 
      } 
      catch (Exception ex) 
      { 
       recentLogLines.AppendLine(ex.Message); 
       isAllClean = false; 
      } 
     } 

     foreach (DirectoryInfo dir in SysRecDir.GetDirectories()) 
     { 
      try 
      { 
       dir.Delete(true); 
      } 
      catch (Exception ex) 
      { 
       recentLogLines.AppendLine(ex.Message); 
       isAllClean = false; 
      } 
     } 

     return isAllClean; 
    } 
+1

您是否嘗試過用管理員權限運行可執行文件? – MarcF 2013-03-16 01:21:42

+0

另外,僅供參考,我建議不只是記錄ex.Message,而是ex.ToString()。 – 2013-03-16 01:28:52

+0

@MarcF,謝謝,但我已經試過管理權限。我在Win7中的用戶名具有管理員權限。我可以刪除任何其他文件,但無法刪除最近的文件夾中的任何文件 – jchoudhury 2013-03-16 01:31:35

回答

1

您能夠通過Windows資源管理器來訪問Recent文件夾?

您可以繼續並更改系統中的權限,但不能更改用戶系統中的權限。 因此,您可以通過兩種方式處理此異常情況。

  1. 你需要檢查,如果你有訪問,使用FileIOPermission但如果你是在太多的文件做這可能是多餘和浪費之前的文件訪問。
  2. 只是嘗試打開該文件,並把你的精力投入到了良好的異常處理程序,如果它失敗 Reference
+0

我無法從Win Explorer訪問最近的文件夾。 – jchoudhury 2013-03-16 12:36:59