我想创建一个Windows服务,该服务检测是否对文件中的任何文件进行了更改(创建,删除或修改)系统。 当它检测到更改时,我会检查是否对相关文件进行更改。如果是这种情况,那么我会将文件同步到服务器。 我知道我将如何同步这些文件,我只想知道如何创建一个事件,只要文件系统发生任何更改就会触发。 该事件还应提供有关被修改的文件的路径的信息,以及对该文件执行的操作。如何创建在文件系统中修改或创建或删除任何文件后触发的事件
0
A
回答
1
您只需要初始化FileSystemWatcher并订阅相关事件。
FileSystemWatcher watcher = new FileSystemWatcher(@"DirectoryPath");
watcher.Filter = "*.*";//Watch all the files
watcher.EnableRaisingEvents = true;
//Specifies changes to watch for in a file or folder.
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size;
//订阅以下事件
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.Created += new FileSystemEventHandler(watcher_Created);
watcher.Deleted += new FileSystemEventHandler(watcher_Deleted);
//Raise when new file is created
private void watcher_Created(object sender, FileSystemEventArgs e)
{
//Sync with server
}
//Raise when file is modified
private void watcher_Changed(object sender, FileSystemEventArgs e)
{
//Sync with server
}
//Raise when a file is deleted
private void watcher_Deleted(object sender, FileSystemEventArgs e)
{
//Sync with server
}
+0
感谢您的解决方案,稍作修改。 >>代替目录路径,我写了“D:\”来搜索整个驱动器。 >> watcher.IncludeSubdirectories = true;以便wacher搜索子目录。 –
+0
@VK很高兴帮助你。 – Kurubaran
相关问题
- 1. 创建或删除触发事件
- 2. FUSE文件系统监视任何创建/删除的文件
- 3. 如何创建事件触发器创建表或选择到
- 4. 在文件中创建文件系统
- 5. 在文件系统中创建文件
- 6. 使用WatchService忽略文件事件(创建,修改,删除)
- 7. 如何在initramfs根文件系统中添加或删除任何文件?
- 8. 如何删除由eclipse插件创建的本地文件系统文件
- 9. 如何在程序或触发器中创建mysql事件?
- 10. 如何在Android的文件系统中创建子文件
- 11. 如何在lnux系统中检测文件更改或删除
- 12. 如何在文件系统的目录中删除ATR文件后重新创建ATR文件?
- 13. Node-Webkit:如何在本地文件系统中创建文件?
- 14. 使用FileSystemWatcher来触发事件,然后删除新创建的文件?
- 15. 如何(或可以)删除由Zend_Search_Lucene创建的索引文件
- 16. 仅rsync日期和时间后创建或修改的文件
- 17. 如何在php中修改或删除一行文本文件?
- 18. 更新或删除现有文件并创建新文件
- 19. 如何创建删除子文件夹
- 20. 如何创建或编写STDF文件?
- 21. 在windows中创建文件系统
- 22. 在文件系统的任何位置查找正在创建的新文件
- 23. 新创建或更改文件的filewatcher
- 24. 如何在超系统中创建文本文件
- 25. 使用java.nio在文件更改中引发创建/移动/删除事件
- 26. XPages:如何创建链接从文件系统下载文件
- 27. 使用biopython创建没有创建任何文件的文件
- 28. 如何在保存文件时在文件系统上创建文件夹
- 29. 如何为CKFinder创建重命名后或删除后事件挂钩?
- 30. 如何基于文本文件创建或修改基于文本文件的QT表单(编译后)
看看这个答案:http://stackoverflow.com/questions/931093/how-do-i-make -my-program-watch-for-file-modification-in-c它也描述了C#.Net方式 –
[Directory Modification Monitoring]的可能重复(http://stackoverflow.com/questions/112276/directory-modification-监测)。 **注意:**这大多是这个问题的一个骗局。但是,请记住:FSW并不保证您会收到通知,并且如果在给定的文件系统上活动很高,则会漏掉一些。要监视的文件系统越多(例如“文件系统中的_any_文件”),FSW越有可能会错过某些内容。 –