在文件夹中查找文件,获取并比较在 C# 中创建的最新日期
Look for file in folder, get & compare latest date created in c#
我需要监控一个文件夹,查看一个或多个文件是否已上传。然后我需要获取最新上传的文件的创建日期和时间,看看文件的创建时间是否距离当前时间超过 30 分钟。我已经使用 FileSystemWatcher 来监视文件夹,但我应该如何继续查找最新文件并将其与当前时间进行比较。
private void watch()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastWrite;
NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
Private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
我该如何在 C# 中做到这一点。请帮忙!
从你的评论中,我真的不明白你为什么需要使用 FileSystemWatcher
。你说你每 1 小时有一个计划任务需要检查目录的文件创建时间。所以在那个任务中,只需执行以下操作:
// Change @"C:\" to your upload directory
string[] files = Directory.GetFiles(@"C:\");
var oldestFile = files.OrderBy(path => File.GetCreationTime(path)).FirstOrDefault();
if (oldestFile != null)
{
var oldestDate = File.GetCreationTime(oldestFile);
if (DateTime.Now.Subtract(oldestDate).TotalMinutes > 30)
{
// Do Something
}
}
要过滤特定文件,请使用重载:
string[] files = Directory.GetFiles(@"C:\", "*.pdf");
在 OnChanged 事件中:
private static void OnChanged(object source, FileSystemEventArgs e)
{
var currentTime = DateTime.Now;
var file = new FileInfo(e.FullPath);
var createdDateTime = file.CreationTime;
var span = createdDateTime.Subtract(currentTime);
if (span.Minutes > 30)
{
// your code
}
}
要过滤特定的文件扩展名(如 pdf),您可以使用:
if (file.Extension == ".pdf")
{
}
我需要监控一个文件夹,查看一个或多个文件是否已上传。然后我需要获取最新上传的文件的创建日期和时间,看看文件的创建时间是否距离当前时间超过 30 分钟。我已经使用 FileSystemWatcher 来监视文件夹,但我应该如何继续查找最新文件并将其与当前时间进行比较。
private void watch()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastWrite;
NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
Private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
我该如何在 C# 中做到这一点。请帮忙!
从你的评论中,我真的不明白你为什么需要使用 FileSystemWatcher
。你说你每 1 小时有一个计划任务需要检查目录的文件创建时间。所以在那个任务中,只需执行以下操作:
// Change @"C:\" to your upload directory
string[] files = Directory.GetFiles(@"C:\");
var oldestFile = files.OrderBy(path => File.GetCreationTime(path)).FirstOrDefault();
if (oldestFile != null)
{
var oldestDate = File.GetCreationTime(oldestFile);
if (DateTime.Now.Subtract(oldestDate).TotalMinutes > 30)
{
// Do Something
}
}
要过滤特定文件,请使用重载:
string[] files = Directory.GetFiles(@"C:\", "*.pdf");
在 OnChanged 事件中:
private static void OnChanged(object source, FileSystemEventArgs e)
{
var currentTime = DateTime.Now;
var file = new FileInfo(e.FullPath);
var createdDateTime = file.CreationTime;
var span = createdDateTime.Subtract(currentTime);
if (span.Minutes > 30)
{
// your code
}
}
要过滤特定的文件扩展名(如 pdf),您可以使用:
if (file.Extension == ".pdf")
{
}