我在SFTP服务器上有一个文件夹,里面有一堆文件.有6个不同的文件,每60分钟创建一次.每个都有一个日期和时间戳,为期3天.
FilesCodes_Critical.2022-03-17_11-16-22-614.json
FilesCodes_Critical.2022-03-17_12-12-16-818.json
FilesCodes_Critical.2022-03-17_13-11-43-025.json
TransactionAudit.2022-03-14_11-16-23-530.json
TransactionAudit.2022-03-14_12-12-19-764.json
TransactionAudit.2022-03-14_13-11-45-454.json
我正在创建几个每小时运行一次的进程,并将拾取一个特定的文件并对其进行处理.我知道我可以用Name.StartsWith
来抓取正确的文件,但我不知道如何抓取最新的文件.我想LastWriteTime
可以用,但我不知道如何比较.
fileNamePat = "FileCodes_Critical";
try {
sftpc.Connect();
var files = sftpc.ListDirectory(sFTPPath);
foreach (SftpFile file in files)
{
if (file.Name.StartsWith(fileNamePat))
{
string jsonData = sftpc.ReadAllText(file.FullName);
DataSet ds = JsonConvert.DeserializeObject<DataSet>(jsonData);
}
}
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
我想try 这样的方法来比较并将最终文件放入targetFile
if (file.Name.StartsWith(fileNamePat))
{
if (file.LastWriteTime > targetFile.LastWriteTime)
{
targetFile = file;
}
}
但我不知道在哪里/如何创建SftpFile targetFile
,这样比较就可以了.我try 了SftpFile targetFile = new();
,我想我可以判断它是否为空,然后设置它,但这不起作用.