Я пытаюсь написать небольшое программное обеспечение для регистрации данных, если какой-либо тип файла создан в каталоге A .
Я использую класс 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, документ не сохранен?и как это исправить.