C# WinSCP.NET程序集-GetFiles根目录非递归(无子目录)
我正在尝试从一个目录下载文件,而不是通缉目录中的其他目录 我在互联网上搜索了答案,唯一找到的是在C# WinSCP.NET程序集-GetFiles根目录非递归(无子目录),c#,winscp,winscp-net,non-recursive,C#,Winscp,Winscp Net,Non Recursive,我正在尝试从一个目录下载文件,而不是通缉目录中的其他目录 我在互联网上搜索了答案,唯一找到的是在传输选项中使用文件掩码“|*/”,它不起作用,什么也不下载 使用最新版本(5.7.5) 排除子目录的代码是正确的 另请参见WinSCP常见问题解答 它相当于您的代码 代码中还有其他问题 您要求WinSCP下载根目录,但不排除所有目录。所以没有下载任何东西。您需要请求下载根目录中的所有文件:/* 引用以下文件: 远程目录的完整路径后跟斜杠和,以选择要下载的文件或子目录。要下载目录中的所有文件,请使用m
传输选项中使用文件掩码
“|*/”
,它不起作用,什么也不下载
使用最新版本(5.7.5)
排除子目录的代码是正确的
另请参见WinSCP常见问题解答
它相当于您的代码
代码中还有其他问题
您要求WinSCP下载根目录,但不排除所有目录。所以没有下载任何东西。您需要请求下载根目录中的所有文件:/*
引用以下文件:
远程目录的完整路径后跟斜杠和,以选择要下载的文件或子目录。要下载目录中的所有文件,请使用mask*
我假设C:\bla
是一个目标目录。因此,您必须告诉WinSCP通过附加反斜杠将文件下载到目录中:C:\bla\
。否则,WinSCP将尝试将所有文件保存到名为bla
的C:\
。如果已存在同名目录,则失败。或者用另一个文件覆盖文件,如果没有
以下文件:
下载文件的完整路径。下载多个文件时,路径中的文件名应替换为或省略(路径以反斜杠结尾)
您应该通过检查返回的或直接调用.check()
来检查错误
因此正确的代码是:
TransferOptions t = new TransferOptions { FileMask = "|*/" };
session.GetFiles("/*", @"C:\bla\", false, t).Check();
查看SearchOption
s如何在winscp中使用此选项?
TransferOptions transferOptions = new TransferOptions();
transferOptions.FileMask = "|*/";
session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions);
TransferOptions t = new TransferOptions { FileMask = "|*/" };
session.GetFiles("/*", @"C:\bla\", false, t).Check();