如何从我的 SFTP 服务器下载过去 60 秒内创建的所有 txt 文件?

How can I download all txt files that has been created in the last 60 seconds from my SFTP Server?

static void Main(string[] args)
{
    var fileSystemWatcher = new FileSystemWatcher(@"filepath")
    {
        Filter = "*.txt",
        NotifyFilter = NotifyFilters.FileName,
        EnableRaisingEvents = true
    };

    fileSystemWatcher.Created += OnActionOccurOnFolderPath;

    Console.ReadLine();
}

public static void OnActionOccurOnFolderPath(object sender, FileSystemEventArgs e)
{
    Console.WriteLine(e.ChangeType);
    Console.WriteLine(e.Name);
    Upload.upload();
}

这会将在指定路径中创建的任何 txt 文件上传到 SFTP 服务器。

服务器会生成上传和文件处理是否成功的报告。 这通常需要大约 2-3 分钟。 然后我每 60 秒检查一次计时器是否已创建新报告。

首先我得到目录中的文件列表:

RemoteDirectoryInfo directoryInfo = session.ListDirectory(remotePath);

我这里是select最新的文件:

RemoteFileInfo latest =
    directoryInfo.Files
        .Where(file => !file.IsDirectory)
        .OrderByDescending(file => file.LastWriteTime)
        .FirstOrDefault();

我继续下载文件以检查其中的一些参数。

session.GetFileToDirectory(latest.FullName, localPath);

但是每当我上传多个文件时,就会有多个报告,但我只能下载最新的一个。

我的意图是下载过去 60 秒内创建的所有内容。 这需要在保证新数据上传的情况下完成。

所以我认为上面用于查找 latest 的代码需要以某种方式更改。

要下载最后一分钟创建的文件,请使用 file mask time constraint >=60S:

session.GetFilesToDirectory(remoteDirectory, localDirectory, "*>=60S").Check();