2014-04-22 5 views
1

파일을 매핑 된 네트워크 위치에 복사하려고합니다. 수동으로 시도하면 모든 것이 정상적으로 작동합니다.다른 컴퓨터의 공유 폴더에 파일 복사

다음 코드를 실행하면 예외가 없지만 필요한 위치에 코드가 표시되지 않습니다.

 string _sharedLocation = @"C:\Users\pddd\AppData\Roaming\Microsoft\Windows\Network Shortcuts\system-tests"; 

    if (Directory.Exists(_sharedLocation) && File.Exists(@"c:\\Automation\\Tests\\Test1\\events.json")) 
    { 
     File.Copy(@"c:\\Automation\\Tests\\Test1\\events.json", Path.Combine(_sharedLocation, "events11.json"), true); 
    } 

해당 문제에 대한 제안 사항.

+0

다른 곳에서 예외를 잡는 것이 아니라고 확신합니까?대상 폴더에 인증이 필요합니까? – Codor

+0

[네트워크 공유 드라이브에있는 파일 복사] (http://stackoverflow.com/questions/1432213/copy-file-on-a-network-shared-drive)를 통해 단서를 얻을 수 있습니다 –

+0

보세요 http://stackoverflow.com/questions/15801748/copying-local-file-to-network-shared-drive-issues 또는 http://stackoverflow.com/questions/1432213/copy-file에서 -on-a-network-shared-drive –

답변

1

을 수정하십시오, 그것은 위치에의 여기에서 추측하고 있지만 네트워크 폴더가 아닌 네트워크 폴더의 바로 가기 을 참조하려고하십니까?

이 작동하지 않습니다 :

File.Copy(myOriginalFile, "C:\...\MyShortcutToANetworkFolder\myFile.txt"); 

왜하지? 바로 가기는 기본적으로 파일이 아니기 때문에 폴더 인이 아닙니다. (그보다 복잡하기는하지만 논쟁의 여지가 간단합니다.) 파일 (또는 다른 것)을 바로 가기에 넣을 수는 없습니다. 당신이 지름길로 할 수있는 유일한 일은 그것을 여는 것입니다.

실제 네트워크 폴더 경로가 필요합니다.

이 작동합니다 :

File.Copy(myOriginalFile, "\\myServer\myFolder1\myFolder2\myFile.txt"); 
0

대상 경로 _sharedLocation도 원격 경로가 아닌 로컬 경로를 참조하는 것으로 보입니다.

0

sharedLocation 경로가 유효하지 않다고 생각합니다.

는 @ 작성하는 경우 "C : \""...\Windows\Network Shortcuts\..."

I는 코드가 를 실행중인 로컬 드라이브를 참조 할이 때문에 _SharedLocation 변수에서 찾고 그것을

+0

File.Copy는 해당 경로가 로컬 또는 원격 위치를 가리키는 지 여부에 관계없이 작동해야합니다. 그 문제는 주어진 파일 경로가 실제 * 폴더가 아닌 * 폴더 단축키 *라는 사실에서 비롯된 것이라고 생각합니다. – Flater

0

문제을 : 귀하의 공유 경로가 동일한 시스템의 C: 드라이브를 의미합니다. 아마도 당신은 매핑 된 네트워크 위치의 지름길을 언급하고 있습니다.

string _sharedLocation = @"C:\Users\pddd\AppData\Roaming\Microsoft\Windows\Network Shortcuts\system-tests"; 

이 있어야한다 :

string _sharedLocation = @"\\ComputerNetworkIdentity\SharedFolder\pddd\AppData\Roaming\Microsoft\Windows\Network Shortcuts\system-tests"; 

공유 컴퓨터 \\ComputerName를 사용하여 위치 할 수 있습니다. shared folder에 대한 액세스 권한이이어야합니다.

간단한 방법은 공유 폴더를 찾습니다

  1. 열기 Run 대화 상자를.
  2. 앞의 백 슬래시가있는 컴퓨터 이름. \\ComputerNetworIdentity
  3. 네트워크 컴퓨터가 공유하는 폴더를 찾습니다.
관련 문제