File.Move не работает должным образом для путей UNC

Я пытаюсь использовать File.Move для перемещения файла из одного расположения UNC в другое. Это сработает, если путь UNC для места назначения окажется локальным компьютером (ошибка: доступ к пути запрещен). Пример File.Move(@"\\someServer\path\file.txt", @"\\blah2\somewhere\file.txt"). Предполагается, что где-то есть сетевой ресурс с именем \\ someServer, а имя моей локальной машины - blah2. Измените \\ blah2 на C: \ и все будет хорошо.


person Addi    schedule 12.10.2008    source источник


Ответы (6)


Может, это опечатка, но разве не @"\\blah2\somewhere\file.txt", т.е. с двумя обратными косыми чертами?

person Juanma    schedule 12.10.2008

Разве имя сервера в вашем пути unc не должно начинаться с двух косых черт?
например, @ "\\ someServer \ path \ file.txt"

person hamishmcn    schedule 12.10.2008
comment
Учитывая, что мне пришлось написать три слэша, чтобы два появилось в моем сообщении, теперь я предполагаю, что у вас была такая же проблема, и что у вас есть правильные пути. Извините, я не мог быть более полезным :-) - person hamishmcn; 12.10.2008

Для общего файлового ресурса Windows для доступа на запись необходимо указать разрешение в одном дополнительном месте (кроме ACL) - в разрешениях для общего ресурса. Если вы используете административный общий ресурс, такой как C $, тогда доступ на запись уже включен, но если вы используете общий ресурс, который был явно настроен для этого, убедитесь, что опция «Изменить» включена в разделе «Разрешения на общий ресурс».

Обратите внимание, что вы часто можете устранить ошибки разрешений, проверив журнал событий безопасности в разделе «Управление компьютером» -> «Просмотр событий». Там могут быть дополнительные сведения о том, как это происходит. Включение аудита сбоев входа в систему в разделе «Администрирование» -> «Локальная политика безопасности» -> «Локальные политики» -> «Политика аудита» также может предоставить более подробную информацию в журнале событий.

person J c    schedule 12.10.2008

Кажется, я не могу воспроизвести ошибку. Может это как-то связано с разрешениями? Можете ли вы переместиться в любое место на локальном компьютере, используя адрес UNC, или все они генерируют исключение?

person ICR    schedule 12.10.2008

У меня была такая же проблема, и файл был заблокирован другой программой (проводником Windows), в моем случае я разблокировал файл с помощью unlocker. это случилось со мной при доступе к файлу с использованием пути UNC, метод File.Move отлично работает, получая доступ к нему через локальный путь.

Мне кажется странным, что у меня не было такого поведения при ручном переименовании файла через UNC / локальный путь.

person MariangeMarcano    schedule 04.02.2012

File.Move Target Path не принимает UNC-путь

http://support.microsoft.com/KB/112744

person user3440306    schedule 29.05.2014