我正在使用C#中的FileSystemWatcher构造。作为课程的标准,我让我的观察者仅仅关注感兴趣的目录。我遇到的问题是,无论用户事件(复制,创建,重命名),我正在拾取的唯一事件是Changed事件。C#:FileSystemWatcher仅派发ChangedEvent
例如。
观看文件 “C:\桌面\ MattsRequest”
创建文件 “C:\桌面\ MattsRequest \ Dummy.txt”
观察,只有给onChanged处理与“改变”一个FileSystemEventArg和路径ARG引发的是“C:\桌面\ MattsRequest” 并没有提到什么文件被创建
我的监视器代码看起来像这样。
watcher = new FileSystemWatcher();
//watcher.IncludeSubdirectories = true;
watcher.InternalBufferSize = 32768 * 2;
//Can't use a synchro because I can't find an example of something that
//implements ISynchroniz-whatever
//watcher.SynchronizingObject =
watcher.Path = filePath;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName
| NotifyFilters.CreationTime;
watcher.Changed += OnChanged; //Gets triggered
watcher.Created += OnCreated; //Never triggered
watcher.Deleted += OnDeleted;
watcher.Renamed += OnRenamed; //Never triggered
watcher.Error += WatcherOnError; //Never triggered
// Begin watching.
watcher.EnableRaisingEvents = true;
下面是当我创建的监控目录的新文件的图像,并且它触发关闭事件。它的类型当然是Changed,但它并不告诉我创建了哪个文件。
任何帮助是极大的赞赏。
最有可能你看顶级目录。例如,您观看“Desktop \ MattsRequest”,但您在子目录“Desktop \ MattsRequest \ MattsRequest \ Dummy.txt”中创建文件。 – Evk
如果你想跟踪子目录中的变化 - 设置'watcher.IncludeSubdirectories = true;' – Evk
@Evk Hello Evk。你是完全正确的问题是什么。你介意让你的评论成为回应,所以我可以给它一个绿色支票? –