2009-09-09 3 views
0

나는 네트워크 폴더에 특정 파일을 복사해야하는 프로그램을 작성하고 있습니다. 회사 네트워크에 있으므로 폴더에 액세스하는 데 필요한 자격 증명이 Windows 자격 증명과 동일합니다.C# 권한이있는 폴더로 파일 복사

탐색기에서 폴더를 열고 내 사용자 이름과 암호를 입력 한 다음 업 로더를 실행하면 프로그램이 작동합니다. 먼저 사용자 이름과 암호를 제공하지 않으면 작동하지 않습니다.

Copy 메서드에 내 DefaultNetworkCredentials를 제공하도록 System.IO에 지시하려면 어떻게합니까? 아니면이 작업을 수행하는 데 사용할 수있는 다른 방법이 있습니까?

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" 

고마워요!

~ Wogan

+0

나는 보편적 인 방법이 있다고 믿는다 : http://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting -to-a-network-share/39540451 # 39540451 –

답변

2

오류는 잘못된 경로가 아닌 권한 문제가 있음을 시사한다.

이 시도 :

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

[@는 인용 기호 문자열 리터럴; 그것 없이는 백 슬래시가 특수 문자 임]

+0

'\\'을 사용하여 '\'문자를 모두 이스케이프 할 수도 있습니다. 그러나 Mitch'es 솔루션이 가장 좋습니다. – Koekiebox

+0

슬프게도, 그게 아니야 - 원래 질문에 말했듯이, 프로그램을 실행하기 전에 탐색기의 폴더 경로를 탐색하여 로그인하면 코드가 제대로 작동합니다. – Wogan

+0

그 의사 코드 샘플은 프로그램에서 복사되지 않았습니다. 단지 데모 용이었습니다. – Wogan

관련 문제