2013-09-25 3 views
1

Я пытаюсь переименовать несколько папок с подпапками, но когда я использую Directory.Move() в подпапке, родительская папка, похоже, блокируется.Доступ к IOException запрещен, когда папка Directory.Move и родительская папка

Мой код:

var pathParent = @"D:\test\f1"; 
var pathSub = @"D:\test\f1\f2"; 

var pathParentnew = @"D:\test\f1new"; 
var pathSubnew = @"D:\test\f1\f2new"; 

Directory.Move(pathSub, pathSubnew); 
Directory.Move(pathParent, pathParentnew); 

Последние Directory.Move() Выдает

IOException: Доступ к "D: \ Test \ f1" Отказано

Кто-нибудь знает, как Я могу переименовать обе папки?

+0

ли вы уже папку под названием 'D: \ Test \ f1new'? –

+0

Нет, не знаю. Tnx для редактирования. – Jompa234

+0

Я пробовал ваш код, и он отлично работает на моей машине. –

ответ

2

Я понял, в чем проблема. Мне пришлось закрыть File Explorer в Windows. Этот процесс каким-то образом блокировал папки.

+0

Странно, папка PARENT была открыта для моего случая, и это была проблема блокировки ... –

0

Ваша программа ранее открывала файл в родительском каталоге. Вам необходимо закрыть этот файл, прежде чем он позволит вам переименовать папку.

+0

Tnx для ответа. Вы знаете, как я могу это сделать? – Jompa234

0

Попробуйте это ..

DirectoryInfo dirInfo = new DirectoryInfo(oldpath); 
dirInfo.MoveTo(newPath); 
Смежные вопросы