2

在我的解决方案中,我有两个项目(Windows 服务和 WPF 来管理服务),我有一个服务使用的坐文件(XML)我问的是:

我想知道用户何时在不重新启动服务的情况下对 XML 文件进行任何更改并知道已更改的 xml 节点是什么

查了很多,发现解决办法是通过FileSystemWatcher

侦听文件系统更改通知并在目录或目录中的文件更改时引发事件。

但我怎么知道改变的 xml 节点是什么

谢谢

4

1 回答 1

0

我会保留原始 XML 的副本,然后在 FileSystemWatcher 触发时运行比较。查看Efficient algorithm for comparison XML nodes以获取有关比较 XML 节点的建议。

文件观察器示例

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;
...
于 2013-07-24T08:29:17.687 回答