Файл.Перемещение не работает должным образом для путей UNC

#.net #unc

Вопрос:

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

Ответ №1:

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

Ответ №2:

Разве имя сервера в вашем unc-пути не должно начинаться с двух косых черт?
например @»\someServerpathfile.txt»

Комментарии:

1. Учитывая, что мне пришлось написать три косых черты, чтобы две из них появились в моем посте, теперь я предполагаю, что у вас была та же проблема и что у вас правильные пути. Извините, я не мог быть более полезным 🙂

Ответ №3:

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

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

Ответ №4:

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

Ответ №5:

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

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

Ответ №6:

Файл.Переместить целевой путь-это не принять UNC-путь

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