Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文件夹中保存X时间的文件_C#_File_Directory - Fatal编程技术网

C# 在文件夹中保存X时间的文件

C# 在文件夹中保存X时间的文件,c#,file,directory,C#,File,Directory,下面是一个场景: 我将文件复制到文件夹中 我希望它能被其他的程序所采用 有没有办法监控文件在文件夹中的存在时间 如果文件在X时间内位于文件夹中,我想引发一个事件 请告知我可以使用什么来实现这一点 我想使用文件系统监视程序,节省创建它的时间 并根据您需要的精确程度比较X时间之后是否存在该文件,您可以使用一个过程,每隔一段时间检查文件夹的内容,并让您知道文件夹中存在的文件过长。要列出目录中的文件,您可以使用directory.GetFiles,如下所示。 然后遍历所有文件,检查文件期限 st

下面是一个场景: 我将文件复制到文件夹中 我希望它能被其他的程序所采用

有没有办法监控文件在文件夹中的存在时间

如果文件在X时间内位于文件夹中,我想引发一个事件

请告知我可以使用什么来实现这一点

我想使用文件系统监视程序,节省创建它的时间
并根据您需要的精确程度比较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时间后检查文件是否存在,谢谢!