在c#中使用WinSCP传输只包含数字而不包含字母的文件?



我在下面尝试了,但是没有成功-

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.ListDirectorySession.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");
}

相关内容

  • 没有找到相关文章

最新更新