我正在尝试从 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();
我该如何解决?我想一个一个地获取文件,因为我需要在下载前做一些验证。
如文档所述,
Session.EnumerateRemoteFiles
仅支持简单的 Windows 通配符:但是您可以简单地过滤方法返回的枚举:
DateTime limit = DateTime.Now.AddDays(-1);
var filesCount1 =
session.EnumerateRemoteFiles(
importFromSFTPDTO.ServerPath, "*.xml", WinSCP.EnumerationOptions.None)
.Where(file => file.LastWriteTime > limit)
.Count();
请注意,这会按照您的要求计算“超过 24 小时的文件”。什么不是文件掩码
>24HS
的意思。所以我不确定你到底在找什么。