using System; using System.IO; using System.Windows.Forms; using System.Xml; namespace UAS_XmlAnalysor { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void StartWatch_Click(object sender, EventArgs e) { XmlWatcher.Path = FolderPath.Text; XmlWatcher.Filter = "*.xml"; XmlWatcher.Created += new FileSystemEventHandler(XmlWatcher_Created); XmlWatcher.EnableRaisingEvents = true; } private void XmlWatcher_Created(object sender, FileSystemEventArgs e) { while (true) { try { using (Stream stream = File.Open(e.FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) { if (stream != null) break; } System.Threading.Thread.Sleep(500); } catch (Exception ex) { Console.WriteLine(string.Format("Output file {0} not yet ready ({1})", e.Name, ex.Message)); } } XmlReader myReader = XmlReader.Create(FolderPath.Text + @"\" + e.Name); while (myReader.Read()) { if (myReader.NodeType == XmlNodeType.Element && myReader.Name == "test") { for (int i = 0; i < myReader.AttributeCount; i++) { Console.WriteLine(myReader.GetAttribute(i)); } } } myReader.Close(); } private void StopWatch_Click(object sender, EventArgs e) { XmlWatcher.EnableRaisingEvents = false; } private void Clean_Click(object sender, EventArgs e) { OperateResult.Clear(); } private void ChooseFolder_Click(object sender, EventArgs e) { FolderBrowserDialog folder = new FolderBrowserDialog(); folder.Description = "选择监控文件夹"; DialogResult result = folder.ShowDialog(); if (result == DialogResult.OK) { FolderPath.Text = folder.SelectedPath; } } private void ReadNodeFromXML(string FileName) { } private void Form1_Load(object sender, EventArgs e) { } } }