2014-11-17 2 views
2

폴더가 아닌 서버의 홈 (루트) 디렉토리에 파일을 업로드하고 싶습니다.WinSCP .NET 어셈블리 - 파일을 집에 업로드하는 방법?

어떻게하면됩니까? 내가 \\remotePath를 들어, 업로드 된 파일의 이름을 변경하고 사용하는 경우

transferResult = session.PutFiles(path, "\\", true, transferOptions); 

(C#을 사용).

+0

지금은 그것을 테스트 할 수, 그래서 주석으로 여기에 넣어하지만 "/"를 사용하려고 했습니까? – Steve

+0

@ 증거이 파일은 '원격 파일을 덮어 쓸 수 없습니다'/ JKH_MCEFT_11172014 33502 PM.txt '오류를 표시합니다. 오류 파일 업로드 : '/ JKH_MCEFT_11172014 33502 PM.txt'원격 파일을 덮어 쓸 수 없습니다. '삭제'를 눌러 파일을 삭제하고 덮어 쓰지 않고 새로 만듭니다. Error : WinSCP.SessionRemoteException : 원격 파일 '/ JKH_MCEFT_11172014 33502 PM.txt'을 덮어 쓸 수 없습니다. '삭제'를 눌러 파일을 삭제하고 덮어 쓰지 않고 새로 만듭니다. ---> WinSCP.SessionRemoteException : 해당 파일이나 디렉터리가 없습니다. 오류 코드 : 2' – Suravi

답변

5

원격 경로는 일반적으로 Windows 백 슬래시가 아닌 슬래시와 유닉스 규칙을 사용합니다.

또한 슬래시는 홈 폴더가 아닌 루트 폴더 만 나타냅니다 (계정이 chroot되지 않은 경우).

session.PutFiles(path, "/home/user/", ...); 

chroot 된 계정에 대한 슬래시 만 (이것은 일반적인 의견이다 나는 그것이 당신의 사건이 아니다 참조) 다음과 같습니다 :

session.PutFiles(path, "/", ...); 

이상적으로 홈 폴더에 대한 절대 경로를 사용

"./"을 사용하여 초기 (집) 디렉토리를 나타낼 수도 있습니다.

session.PutFiles(path, "./", ...); 

은 또한 사용할 수 있습니다 Session.HomePath :

session.PutFiles(path, session.HomePath + "/", ...); 
+0

예 "./"저를 위해서 일합니다. @Martin – Suravi

+2

WinSCP의 작성자가 질문에 대답하고 있습니다. 아마 그렇게 잘 작동하는 이유 중 하나 일 것입니다. –

관련 문제