Доступ запрещен к папке в одном классе, но не в другом - PullRequest
3 голосов
/ 29 января 2011

Я получаю исключение при попытке переименовать папку с этим кодом:

Directory.Move(@"D:\MyOldFolderName", @"D:\MyNewFolderName");

Исключение:

System.IO.IOException was unhandled
  Message="Access to the path 'D:\\MyOldFolderName' is denied."
  Source="mscorlib"
  StackTrace:
     at System.IO.Directory.Move(String sourceDirName, String destDirName)
     ...

Дело в том, что ТОЧНАЯ кодовая строка работает в другом классе моего приложения. Приложение состоит только из одной DLL.

Что здесь происходит? Есть идеи?

Дополнительная информация:

  • Приложение представляет собой приложение WPF, используя шаблон проектирования MVVM.
  • Класс, в котором папка переименовывается Работает ли это ViewModel.
  • Класс, в котором папка переименовывается НЕ работает, это вспомогательный класс ( метод делает некоторые базы данных, связанные вещи, прежде чем пытаться переименовать папки).

1 Ответ

4 голосов
/ 29 января 2011

Вероятно, это связано не с правами, а с тем фактом, что где-то в коде вы открываете файлы / потоки из этих папок ... ставьте точку останова, прежде чем пытаться переместить папку и исследовать эту папку с помощью какого-либо инструмента, такого как Кто заблокирует меня или что-то подобное, чтобы увидеть, есть ли различия, когда первый класс делает это, а второй ... Я ожидаю, что непосредственно перед тем, как вы попытаетесь переместить папку с классом «провал», перемещаемая папка заблокирована (используется) ...

...