2009-09-09 2 views
0

Я пишу программу, которая, между прочим, должна скопировать определенный файл в сетевую папку. Поскольку я нахожусь в сети компании, учетные данные, необходимые для доступа к этой папке, совпадают с моими учетными данными Windows.C# Скопировать файл в папку с разрешениями

Программа работает, если я открываю папку в Проводнике, указываю свое имя пользователя и пароль, а затем запускаю загрузчик. Он не работает без предварительного указания имени пользователя и пароля.

Как сообщить System.IO о предоставлении моего DefaultNetworkCredentials методу Копировать? Или есть другой метод, который я могу использовать, чтобы это сделать?

string pathToFile = "myfile.csv"; 
string pathToRemoteFile = "\\server.domain.tld\Documents\Subfolder\myfile.csv" 

System.IO.File.Copy(pathToFile, pathToRemoteFile); // Fails with IOException "can't find network path" 

Спасибо!

~ Воган

+0

Я считаю, что существует более универсальный способ: http://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting -to-network-share/39540451 # 39540451 –

ответ

2

ошибка говорит о том, что это неправильный путь, а не проблема разрешения.

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

string pathToRemoteFile = @"\\server.domain.tld\Documents\Subfolder\myfile.csv" 

[@ является строка буквальное цитирование символ; без него обратная косая черта является особым символом]

+0

вы также можете избежать всех символов '\' с помощью '\\'. Но решение Митча лучше. – Koekiebox

+0

К сожалению, это не так. Как я уже сказал в своем первоначальном вопросе, код работает нормально, если я просматриваю и вхожу в путь к папке в проводнике, прежде чем запускать программу. – Wogan

+0

К сожалению, этот образец псевдокода не был скопирован из программы, это было просто для демонстрационных целей. – Wogan

Смежные вопросы