我想写一个用于记录数据的小软件,如果目录中创建的任何类型的文件A。写入数据到XML时,发生事件时的问题
我使用FileSystemWatcher
类来获取文件夹中的文件创建信息A。文件夹A中有许多子文件夹。许多用户可以一次在该目录中创建文件。
我使用XML数据来保存日志数据。
XmlTextReader reader = new XmlTextReader(FILE_NAME);
XmlDocument doc = new XmlDocument();
doc.Load(reader);
reader.Close();
XmlNode currNode;
XmlDocumentFragment docFrag = doc.CreateDocumentFragment();
docFrag.InnerXml = "<item>" +
"<path>" + fileName + "</path>" +
"<created>0</created>" +
"<date>" + DateTime.ParseExact(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss"), "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None).ToString() + "</date>" +
"</item>";
// insert the availability node into the document
currNode = doc.DocumentElement;
currNode.InsertAfter(docFrag, currNode.LastChild);
//save the output to a file
doc.Save(FILE_NAME);
但有时在发生watcher.Created += new FileSystemEventHandler(OnChanged);
时,关于文件创建的数据未插入XML文件。
那么,是否可以打开数据写入文件,并锁定新的dataWrite文件文件没有保存?以及如何解决这个问题。
感谢您的建议,并为wiki页+1。 – loviji 2010-09-24 14:02:55