Попытка вызвать Directory.Move приводит к ошибке отказа в доступе.C#

Место общения программистов C#
Ответить
Anonymous
 Попытка вызвать Directory.Move приводит к ошибке отказа в доступе.

Сообщение Anonymous »

Это немного сложно, и, надеюсь, я смогу получить некоторое представление о том, как работает (или должна работать) встроенная в C# функция Directory.Move. Я написал программу, которая помещает список имен папок старше определенной даты в список DirectoryInfo, который она повторяет, чтобы переместить папку в другое место.

Код: Выделить всё

foreach (DirectoryInfo temp in toBeDeleted) {
filecheck.WriteLine(temp.Name);
Directory.Move(temp.FullName, @"T:\Transactiondeletions\" + counter + "\\" + temp.Name);
}
Где temp.Fullname — это что-то вроде T:\UK\DATA\386\trans\12345678.16
Однако при запуске программы я сталкиваюсь с ошибкой отказа в доступе.
Изображение
в данном случае это что-то вроде 10.11.12.13\Data2$
У меня есть другой подключенный диск, U:, который находится на том же IP-адресе, что и 10.11.12.13\Data3$, и имеет точно такую ​​же структуру каталогов.
Примечательно то, что моя программа отлично работает на диске U, но не на диске T. Я попробовал использовать букву диска в своем коде в качестве фактического полного пути с IP, и она по-прежнему работает нормально на диске U, но не на диске T.
На диске T всякий раз, когда моя программа пытается переместить папку, она получает сообщение «Доступ запрещен».
Однако все работает нормально, когда:
  • Я перемещаю папку вручную вручную
  • Я использую копию каталога + Directory.Delete вместо Directory.Move
Есть идеи? Я не могу понять, почему здесь это не сработает, хотя я могу переместить файлы вручную. Я пробовал запустить .exe вручную, от имени администратора и от имени коллеги, но результат тот же.
Я думал, что это могло быть связано с тем, что StreamWriter все еще открыт (проверка файлов), но я уже пытался переместить эту часть кода до тех пор, пока не закрою StreamWriter, но возникают те же ошибки, поэтому я «исключил» такую возможность.
Любой совет буду очень признателен и буду рад предоставить любую дополнительную информацию, если это необходимо.

Подробнее здесь: https://stackoverflow.com/questions/433 ... nied-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»