2014-11-17 120 views
2

我想上传文件到服务器的home(root)目录,而不是文件夹。WinSCP .NET程序集 - 如何上传文件到家?

我该怎么办? (使用C#)

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

如果我使用\\remotePath,上传的文件改名。

+0

不能现在来测试它,所以我把它放在这里作为一个评论,但你尝试使用“/”? – Steve

+0

@Steve显示此错误:'无法覆盖远程文件'/ JKH_MCEFT_11172014 33502 PM.txt'。 错误上传文件:无法覆盖远程文件'/ JKH_MCEFT_11172014 33502 PM.txt'。 按'删除'删除文件并创建新文件而不是覆盖文件。 错误:WinSCP.SessionRemoteException:无法覆盖远程文件'/ JKH_MCEFT_11172014 33502 PM.txt'。 按'删除'删除文件并创建新文件而不是覆盖文件。 ---> WinSCP.SessionRemoteException:没有这样的文件或目录。 错误代码:2' – Suravi

回答

5

远程路径通常使用带有正斜杠的Unix约定,而不是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的作者在这里回答问题。这可能是它工作得很好的部分原因。 –

相关问题