WinSCP Session.EnumerateRemoteFiles的多个文件掩码

时间:2017-08-22 19:16:43

标签: c# .net ftp winscp winscp-net

我正在重建系统监视器应用程序的FTP部分,必须能够下载任何文件:

  • 的.csv
  • 的.xlsx
  • 的.xls

当我尝试设置该掩码时,它返回0个文件,但是如果我只选择其中一个,它就能完美运行。

for(String stringEx : map.getValue()){

  System.Out.Println(stringEx);

}

我尝试了几件事,没有任何东西像我想要的那样工作。

1 个答案:

答案 0 :(得分:1)

mask argument of Session.EnumerateRemoteFiles是Windows通配符。没有办法将多个扩展名与Windows通配符匹配。

但您可以自己过滤文件。例如,使用正则表达式:

Regex mask = new Regex(@"\.(csv|xls|xlsx)$", RegexOptions.IgnoreCase);
List <string> files =
    session.EnumerateRemoteFiles("/", null, EnumerationOptions.AllDirectories)
    .Where(fileInfo => mask.Match(fileInfo.Name).Success)
    .Select(fileInfo => fileInfo.FullName)
    .ToList();