使用 WinSCP .NET 程序集更改根 SFTP 目录

Change root SFTP directory using the WinSCP .NET assembly

我的客户只允许我访问两个特定文件夹及其子文件夹。第一个曾经是我们之前的工作space,现在我们将切换到第二个。

当我使用 WinSCP GUI 连接到 SFTP 时,它会将我连接到旧文件夹。但是,我可以通过单击设置并在远程路径字段中添加“新”路径来更改它。然后,会话将在我连接时自动将我带到新的默认 folder/workspace。

我的问题是如何使用 .NET 和相应的 winscpnet 库执行此操作?

问题是会话的根目录与远程路径不同。

示例:

会话目录是 /C/Document/.

远程路径是 /C/Inetpub/ftproot/username/

当我在终端上使用以下命令时:

winscp.com> open sftp://someone:password;fingerprint=something@ipaddress/C/Inetpub/ftproot/username

winscp.com> put some.txt /in

winscp.com> exit

效果很好!因为正如我们所见,我的会话目录是 /C/Inetpub/ftproot/username/.

有没有办法在 C# 中设置会话根路径?

已解决:你是对的,它是一个虚拟路径,所以 /c/Inetpub 而不是 c/Inetpub

WinSCP .NET 程序集不使用工作目录的概念。它总是使用绝对路径。

因此,如果您将 GUI 会话配置为在 /new/path 中启动,请将其用作 WinSCP .NET 程序集中的绝对路径。

session.PutFiles(@"c:\local\path\*", "/new/path/", false, transferOptions);