查找文件何时添加到文件夹中

12

我想知道在C#中是否可以找到文件何时添加到文件夹中。我知道你可以在FileInfo中看到创建时间和许多其他信息,但不知道添加时间。


1
我实际上不知道任何C#,但通常我知道这样的信息不存储在文件系统中,因此不应该可用。我能想到的唯一选择是对文件夹进行“快照”,检查那时有哪些文件。然后,您回来并拍摄另一个“快照”,比较两者,并查看是否在此期间添加了文件。您必须决定适当的快照间隔。 - Ashley Strout
2
你的意思是要回溯地查找文件何时被添加到文件夹中,还是像FileSystemWatcher一样在发生时得到通知? - Myles McDonnell
我想我会选择“快照”解决方案。FileSystemWatcher并不是我正在寻找的。谢谢! - Mikkel
2
谁点赞了@David的评论?当FileSystemWatcher可用时,定期轮询文件夹是一个令人震惊的想法。在回答问题时,如果你开头说“我其实不知道……”那就更糟糕了。如果你不知道,就别发表评论! - adelphus
4个回答

17
你可以使用 System.IO.FileSystemWatcher。它提供了能够实现你想要的功能的方法:
FileSystemWatcher watcher = new FileSystemWatcher()
{
    Path = stringWithYourPath,
    Filter = "*.txt"
};
// Add event handlers for all events you want to handle
watcher.Created += new FileSystemEventHandler(OnChanged);
// Activate the watcher
watcher.EnableRaisingEvents = true

其中OnChanged是一个事件处理程序:

private static void OnChanged(object source, FileSystemEventArgs e)
{
    Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");
}

8

4
FileSystemWatcher是一个非常强大的组件,它允许我们连接到目录并监视其中特定的更改,例如创建新文件、添加子目录以及重命名文件或子目录。这使得很容易检测出某些文件或目录何时被创建、修改或删除。它是System.IO命名空间的成员之一。
它有四个事件:
- Created - 当目录或文件被创建时引发。 - Deleted - 当目录或文件被删除时引发。 - Renamed - 当目录或文件的名称被更改时引发。 - Changed - 当对目录或文件的大小、系统属性、最后写入时间、最后访问时间或NTFS安全权限进行更改时引发。
完整教程请点击这里

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接