3
我正在使用FileSystemWatcher
來監控文件夾,它似乎阻止了文件夾的父被刪除,但不會阻止文件夾本身被刪除。FileSystemWatcher保留父目錄
例如,我有文件結構:
C:\Root\FolderToWatch\...
,FileSystemWatcher
定位FolderToWatch
。當我的程序運行時,如果我轉到Windows資源管理器並嘗試刪除Root
,我收到錯誤「無法刪除Root:訪問被拒絕」。
但是,如果我刪除FolderToWatch
FIRST,我可以刪除Root
而不會發生意外。
這裏有一些代碼,如果你想玩它:
static void Main(string[] args) {
var watcher = new FileSystemWatcher(@"C:\Root\FolderToWatch");
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Changed += (sender, e) => Console.WriteLine(e.FullPath);
watcher.Created += (sender, e) => Console.WriteLine(e.FullPath);
watcher.Deleted += (sender, e) => Console.WriteLine(e.FullPath);
watcher.Renamed += (sender, e) => Console.WriteLine(e.FullPath);
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press \'q\' to quit.");
while (Console.Read() != 'q');
}
爲什麼FileSystemWatcher
像這樣掛在它的目標的父級上,而不是目標本身?
但是,如果這就是原因,爲什麼直接刪除'FolderToWatch'? – 2010-06-02 20:45:06