如何在 WinSCP C# 中使用 Session.GetFiles 下载单个文件

Sta*_*row 4 .net c# winscp winscp-net

因此,基本上我试图从服务器上的整个文件夹中仅下载一个文件。

文件夹“domain”现在包含这些文件:

文件1.txt
文件2.txt
文件3.txt

因此,正如我在 WinSCP 文档中看到的,如果我只想下载一个文件,我仍然应该使用Session.GetFiles()方法文档)和文件的完整路径。好吧,但我不明白我的问题是什么,因为它不起作用。

session.GetFiles("/domains/domain/File1.txt", Directory.GetCurrentDirectory());
Run Code Online (Sandbox Code Playgroud)

但是,如果我将远程路径更改为整个目录,而不是单个文件,我需要它效果很好,但我不需要所有三个 .txt 文件。

session.GetFiles("/domains/domain/", Directory.GetCurrentDirectory());
Run Code Online (Sandbox Code Playgroud)

Mar*_*ryl 5

localPath正如参数的Session.GetFiles文档所说,参数是:

下载文件的完整路径。

所以应该是:

var localPath = Path.Combine(Directory.GetCurrentDirectory(), "File1.txt");
session.GetFiles("/domains/domain/File1.txt", localPath);
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用 来简化代码Session.GetFileToDirectory,它可以满足您的期望Session.GetFiles

session.GetFileToDirectory(
    "/domains/domain/File1.txt", Directory.GetCurrentDirectory());
Run Code Online (Sandbox Code Playgroud)

另请参阅https://winscp.net/eng/docs/faq_script_vs_gui#inputs