C# 在文件夹中保存X时间的文件
下面是一个场景: 我将文件复制到文件夹中 我希望它能被其他的程序所采用 有没有办法监控文件在文件夹中的存在时间 如果文件在X时间内位于文件夹中,我想引发一个事件 请告知我可以使用什么来实现这一点 我想使用文件系统监视程序,节省创建它的时间C# 在文件夹中保存X时间的文件,c#,file,directory,C#,File,Directory,下面是一个场景: 我将文件复制到文件夹中 我希望它能被其他的程序所采用 有没有办法监控文件在文件夹中的存在时间 如果文件在X时间内位于文件夹中,我想引发一个事件 请告知我可以使用什么来实现这一点 我想使用文件系统监视程序,节省创建它的时间 并根据您需要的精确程度比较X时间之后是否存在该文件,您可以使用一个过程,每隔一段时间检查文件夹的内容,并让您知道文件夹中存在的文件过长。要列出目录中的文件,您可以使用directory.GetFiles,如下所示。 然后遍历所有文件,检查文件期限 st
并根据您需要的精确程度比较X时间之后是否存在该文件,您可以使用一个过程,每隔一段时间检查文件夹的内容,并让您知道文件夹中存在的文件过长。要列出目录中的文件,您可以使用directory.GetFiles,如下所示。 然后遍历所有文件,检查文件期限
string[] files = System.IO.Directory.GetFiles("c:\temp", "*.txt", System.IO.SearchOption.TopDirectoryOnly);
foreach(string file in files)
{
if (System.DateTime.UtcNow.Subtract(System.IO.File.GetCreationTimeUtc(file)).TotalMinutes > 5)
System.Diagnostics.Debug.WriteLine("TODO: Alert, file older than 5 minutes...");
}
如果您只关心超时,那么只需在复制后检查超时。例如,使用
计时器
:
var timer = Timer(5000);
timer.Elapsed += (s, a) =>
{
// checking if file is still there
if(File.Exists(...)
{
// do something
}
}
timer.Start();
@un lucky发布的内容可能会对您有所帮助。如果您尝试过使用
FileSystemWatcher
,您能否向我们展示您的代码,并解释您仍然存在的任何具体问题?到目前为止您尝试了什么?我将使用FileInfo
类来获取文件的创建时间。我还需要进行检查,以确保我不会经常发送文件事件。我同意调查FileSystemWatcher。但是,您可能希望将其包装在一个类中,以帮助使其更加健壮,因为已知它会随机停止监视路径。根据您的需要,您可能希望在经过一点调查后确定此解决方案是最相关的。更正确的方法是,只需在X时间后检查文件是否存在,谢谢!