使用 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);
我的客户只允许我访问两个特定文件夹及其子文件夹。第一个曾经是我们之前的工作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);