我瀏覽過但找不到任何有關我正在尋找的信息,如果有另一篇文章已經過去,那麼我表示歉意。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