我浏览过但找不到任何有关我正在寻找的信息,如果有另一篇文章已经过去,那么我表示歉意。FileSystemWatcher用于监视文件夹/文件打开
我在寻找关于监视特定文件夹的代码的帮助,该特定文件夹用于何时该文件夹被另一个人打开或当该文件夹下的文件被打开时。此时,我可以看到用户何时打开和修改任何文件,但是如果他们只是打开文件来查看它,即使添加LastAccessed也不会抛出事件。任何信息或帮助将不胜感激。
文件夹名称是C:\垃圾
代码在C#4.0:
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void Run()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\";
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "junk";
// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.IncludeSubdirectories = true;
watcher.EnableRaisingEvents = true;
// Wait for the user to quit the program.
Console.WriteLine("Press \'q\' to quit the sample.");
while (Console.Read() != 'q') ;
}
// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
如果文件夹名称是C:\ JUNK,为什么不把它放在Path属性中? Filter属性用于屏幕文件不是文件夹 – Steve 2013-02-08 19:12:48
@Steve - 根据你的建议,我改变了我的代码,但它仍然没有触发打开文件夹。 – Saren 2013-02-08 19:15:39
尝试使用文件系统筛选器驱动程序来跟踪这种更改。其他变体不能很好地工作。 – 2013-02-09 08:07:01