我在下面尝试了,但是没有成功-
string mask = "Report01|*[A-Z]" +"*.txt"; //This line fails to select files which contains only digits
TransferOperationResult transferResult;
transferResult = session.getFiles("RemoteServerPath" +mask,"DestinationServerPath",false,transferOptions);
我正在尝试排除所有在数字后面包含字母的报告。
使用WinSCP文件掩码语法是不可能的。
但是你可以很容易地:
- 遍历目录中的所有文件(使用
Session.ListDirectory
或Session.EnumerateRemoteFiles
) - 是否自定义选择逻辑(例如使用
Regex.Match
); - ,依次传输所选文件。
像这样:
var files = session.ListDirectory("/remote/path").Files;
files = files.Where(_ => Regex.Match(_.Name, "^[0-9]+.txt$"));
foreach (var file in files)
{
session.GetFileToDirectory(file.FullName, @"C:localpath");
}