如何在 WinSCP C# 中使用 Session.GetFiles 下载单个文件
How to download a single file using Session.GetFiles in WinSCP C#
所以,基本上我只是尝试从我服务器上的整个文件夹中下载一个文件。
文件夹 "domain" 现在包含这些文件:
File1.txt
File2.txt
File3.txt
因此,正如我在 WinSCP 文档中看到的那样,如果我只想下载一个文件,我仍然应该使用 Session.GetFiles()
(method docs) 和文件的完整路径。好的,但我不明白我的问题是什么,因为它不起作用。
session.GetFiles("/domains/domain/File1.txt", Directory.GetCurrentDirectory());
但是,如果我将远程路径更改为整个目录,而不是我需要的单个文件,它会很好用,但我不需要所有三个 .txt 文件。
session.GetFiles("/domains/domain/", Directory.GetCurrentDirectory());
正如 localPath
argument of Session.GetFiles
的文档所说,参数是:
Full path to download the file to.
所以应该是:
var localPath = Path.Combine(Directory.GetCurrentDirectory(), "File1.txt");
session.GetFiles("/domains/domain/File1.txt", localPath);
或者,您可以使用 Session.GetFileToDirectory
来简化代码,这会达到您对 Session.GetFiles
的预期:
session.GetFileToDirectory(
"/domains/domain/File1.txt", Directory.GetCurrentDirectory());
所以,基本上我只是尝试从我服务器上的整个文件夹中下载一个文件。
文件夹 "domain" 现在包含这些文件:
File1.txt
File2.txt
File3.txt
因此,正如我在 WinSCP 文档中看到的那样,如果我只想下载一个文件,我仍然应该使用 Session.GetFiles()
(method docs) 和文件的完整路径。好的,但我不明白我的问题是什么,因为它不起作用。
session.GetFiles("/domains/domain/File1.txt", Directory.GetCurrentDirectory());
但是,如果我将远程路径更改为整个目录,而不是我需要的单个文件,它会很好用,但我不需要所有三个 .txt 文件。
session.GetFiles("/domains/domain/", Directory.GetCurrentDirectory());
正如 localPath
argument of Session.GetFiles
的文档所说,参数是:
Full path to download the file to.
所以应该是:
var localPath = Path.Combine(Directory.GetCurrentDirectory(), "File1.txt");
session.GetFiles("/domains/domain/File1.txt", localPath);
或者,您可以使用 Session.GetFileToDirectory
来简化代码,这会达到您对 Session.GetFiles
的预期:
session.GetFileToDirectory(
"/domains/domain/File1.txt", Directory.GetCurrentDirectory());