WinSCP Session.EnumerateRemoteFiles 不适用于掩码

问题描述 投票:0回答:1

我正在尝试从 SFTP 服务器获取文件。目标是获取超过 24 小时的文件。

这个面具有效。计数返回 9018.

var filesCount1 = session.EnumerateRemoteFiles(importFromSFTPDTO.ServerPath, "*.xml", WinSCP.EnumerationOptions.None).Count();

这个面具不起作用。计数返回 0.

var filesCount2 = session.EnumerateRemoteFiles(importFromSFTPDTO.ServerPath, "*.xml>24HS", WinSCP.EnumerationOptions.None).Count();

我该如何解决?我想一个一个地获取文件,因为我需要在下载前做一些验证。

c# import winscp winscp-net
1个回答
0
投票

如文档所述,

Session.EnumerateRemoteFiles
仅支持简单的 Windows 通配符:
https://winscp.net/eng/docs/library_session_enumerateremotefiles#parameters


但是您可以简单地过滤方法返回的枚举:

DateTime limit = DateTime.Now.AddDays(-1);
var filesCount1 = 
    session.EnumerateRemoteFiles(
        importFromSFTPDTO.ServerPath, "*.xml", WinSCP.EnumerationOptions.None)
    .Where(file => file.LastWriteTime > limit)
    .Count();

请注意,这会按照您的要求计算“超过 24 小时的文件”。什么不是文件掩码

>24HS
的意思。所以我不确定你到底在找什么。

© www.soinside.com 2019 - 2024. All rights reserved.