c# - 如何使用 C# 和 WinSCP 使用模式获取远程目录的文件

标签 c# ftp sftp winscp winscp-net

我正在尝试从具有 FTP/SFTP 连接的远程服务器获取特定文件,我遇到的问题是,我正在尝试获取具有特定模式的远程目录中的文件计数。我正在使用掩码,但对我不起作用,它抛出异常: 这就是我所拥有的

DataFile.sRemoteDirectory = "/user/ftpuser/test/";
receivepattern = "Del*";
filesCount =
    session.ListDirectory(
        session.EscapeFileMask(DataFile.sRemoteDirectory + receivepattern))
    .Files.Where(x => !x.IsDirectory).Count();

最佳答案

Session.ListDirectory method不接受通配符,只接受路径。


自 WinSCP .NET 程序集 5.9 起,您可以使用 Session.EnumerateRemoteFiles method相反:

filesCount =
    session.EnumerateRemoteFiles(
        DataFile.sRemoteDirectory, receivepattern, EnumerationOptions.None).Count();

在旧版本中,您必须自己过滤 Session.ListDirectory 返回的文件:

Regex r = new Regex("^Del.*");

filesCount = session.ListDirectory(DataFile.sRemoteDirectory).Files
    .Where(x => !x.IsDirectory)
    .Where(x => r.Match(x.Name))
    .Count()

参见官方示例Listing files matching wildcard (不过在 PowerShell 中)。

关于c# - 如何使用 C# 和 WinSCP 使用模式获取远程目录的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34680848/

相关文章:

c# - 是否有 C# 或 .NET 类来处理 HTTP 内容协商?

c# - 如何在 .Net 中对 Neo4j 进行单元测试?

c# - 分配给 TCP 网络线程池的线程数?

linux - FTP 问题 - 无法检索目录列表

bash - sftp文件下载脚本

python - 如何监听 (S)FTP 服务器上的更改?

c# - Xamarin Android 调试错误

c++ - QT QNetworkAccessManager 从 ftp 服务器下载文件不工作

ftp - PhpStorm - 部署 - 无法上传新文件

java - 如何使用 commons-VFS 在 SFTP 期间跳过密码提示