因此,基本上我试图从服务器上的整个文件夹中仅下载一个文件。
文件夹“domain”现在包含这些文件:
文件1.txt
文件2.txt
文件3.txt
因此,正如我在 WinSCP 文档中看到的,如果我只想下载一个文件,我仍然应该使用Session.GetFiles()
(方法文档 https://winscp.net/eng/docs/library_session_getfiles)以及文件的完整路径。好吧,但我不明白我的问题是什么,因为它不起作用。
session.GetFiles("/domains/domain/File1.txt", Directory.GetCurrentDirectory());
但是,如果我将远程路径更改为整个目录,而不是单个文件,我需要它效果很好,但我不需要所有三个 .txt 文件。
session.GetFiles("/domains/domain/", Directory.GetCurrentDirectory());
作为文档localPath的论证Session.GetFiles https://winscp.net/eng/docs/library_session_getfiles#localpath说,论点是:
下载文件的完整路径。
所以应该是:
var localPath = Path.Combine(Directory.GetCurrentDirectory(), "File1.txt");
session.GetFiles("/domains/domain/File1.txt", localPath);
或者,您可以通过使用来简化代码Session.GetFileToDirectory https://winscp.net/eng/docs/library_session_getfiletodirectory,这符合您的预期Session.GetFiles
:
session.GetFileToDirectory(
"/domains/domain/File1.txt", Directory.GetCurrentDirectory());
也可以看看https://winscp.net/eng/docs/faq_script_vs_gui#inputs https://winscp.net/eng/docs/faq_script_vs_gui#inputs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)