2013-03-16 3 views
0

Я пишу Программное обеспечение, которое может удалять временные файлы, данные предварительной выборки, файлы в последней папке и т. Д. Моя проблема заключается в том, что я могу успешно удалять файлы из папки Temp, но когда я пытаюсь найти последнюю папку, генерируется исключение, «Access to path ... is denied». PS: В соответствии с некоторыми другими вопросами, я установил атрибуты File в нормальное состояние, но все равно не повезло. Пожалуйста, помогите мне в этом вопросе. Для вашего лучшего понимания я приведу здесь код:Не удается удалить файлы из последней папки

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

+0

Кроме того, FYI, я предлагаю не просто регистрировать ex.Message, а скорее ex.ToString(). –

+0

@MarcF, спасибо, но я пробовал с разрешением администратора. Мое имя пользователя в Win7 имеет привилегию администратора. Я могу удалить любой другой файл, но не могу удалить файл из последней папки – jchoudhury

ответ

1

Доступна ли последняя папка через проводник Windows?

Вы можете изменить права доступа в своей системе, но НЕ в своих системах пользователей. Поэтому вы можете справиться с этим условием исключения двумя способами.

  1. Вы должны проверить, если у вас есть доступ к файлам перед доступом, используя FileIOPermission, но это может быть излишним и расточительно, если вы делаете это слишком много файлов.
  2. Просто попробуйте открыть файл и положить ваши усилия в хороший обработчик исключений, если он не Reference
+0

Я не могу получить доступ к папке «Недавние» сейчас из Win Explorer. – jchoudhury

Смежные вопросы