C # Directory.Move System.NotSupportedException - PullRequest
       38

C # Directory.Move System.NotSupportedException

0 голосов
/ 15 февраля 2012

Есть ли способ обойти исключение, указанное в заголовке вопроса? Я понятия не имею, что делать, мне нужно изменить имена каталогов для большого количества каталогов, и было бы намного быстрее запрограммировать их, но это исключение вызвало у меня серьезные проблемы ... Код не сложен , все работает отлично, за исключением одной строки кода:

Directory.Move(folderName, path + "\\" + novoIme);

Заранее спасибо за любую помощь:)

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

Если вы уверены, что исходная папка существует, попробуйте запустить приложение с повышенными привилегиями и посмотреть, что произойдет. Кроме того, попробуйте сформировать целевой путь в отдельной переменной, добавьте его в окно Watches и посмотрите, создано ли правильное имя.

0 голосов
/ 15 февраля 2012

Возможно, исходный и целевой путь находятся на разных томах?Directory.Move метод не поддерживает перемещения с несколькими объемами .

Для этого вам придется реализовать собственную процедуру или использовать чью-либо другую. FolderMove на CodePlex появляется в моих результатах поиска.

0 голосов
/ 15 февраля 2012

Вы можете добавить Microsoft.VisualBasic ссылку на ваш проект и использовать этот код для переименования каталога:

Microsoft.VisualBasic.Devices.Computer c = new Microsoft.VisualBasic.Devices.Computer();
c.FileSystem.RenameDirectory(/*last name*/,/*new name*/);
...