在我的解决方案中我有两个项目(Windows服务和WPF来管理服务) 我有一个服务使用的坐标文件(XML) 我问的是:
我想知道用户何时在不重新启动服务的情况下对XML文件进行任何更改 并知道什么是已更改的xml节点
我搜索了很多,发现解决方案是通过FileSystemWatcher
收听文件系统更改通知并在何时引发事件 目录或目录中的文件发生更改。
但我怎么知道什么是已更改的xml节点
谢谢
答案 0 :(得分:0)
我会保留原始XML的副本,然后在FileSystemWatcher触发时运行比较。有关比较XML节点的建议,请查看Efficient algorithm for comparing XML nodes。
文件监视器示例
String folderLocation = System.Configuration.ConfigurationManager.AppSettings["FOLDER_LOCATION"].ToString();
_watcher = new System.IO.FileSystemWatcher();
_watcher.Path = folderLocation;
_watcher.IncludeSubdirectories = false;
_watcher.NotifyFilter = NotifyFilters.Size;
_watcher.Changed += new FileSystemEventHandler(OnFileChanged);
_watcher.EnableRaisingEvents = true;
private void OnFileChanged(object sender, FileSystemEventArgs e)
{
String file = e.FullPath;
...