Form1.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System;
  2. using System.IO;
  3. using System.Windows.Forms;
  4. using System.Xml;
  5. namespace UAS_XmlAnalysor
  6. {
  7. public partial class Form1 : Form
  8. {
  9. public Form1()
  10. {
  11. InitializeComponent();
  12. }
  13. private void StartWatch_Click(object sender, EventArgs e)
  14. {
  15. XmlWatcher.Path = FolderPath.Text;
  16. XmlWatcher.Filter = "*.xml";
  17. XmlWatcher.Created += new FileSystemEventHandler(XmlWatcher_Created);
  18. XmlWatcher.EnableRaisingEvents = true;
  19. }
  20. private void XmlWatcher_Created(object sender, FileSystemEventArgs e)
  21. {
  22. while (true)
  23. {
  24. try
  25. {
  26. using (Stream stream = File.Open(e.FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
  27. {
  28. if (stream != null)
  29. break;
  30. }
  31. System.Threading.Thread.Sleep(500);
  32. }
  33. catch (Exception ex)
  34. {
  35. Console.WriteLine(string.Format("Output file {0} not yet ready ({1})", e.Name, ex.Message));
  36. }
  37. }
  38. XmlReader myReader = XmlReader.Create(FolderPath.Text + @"\" + e.Name);
  39. while (myReader.Read())
  40. {
  41. if (myReader.NodeType == XmlNodeType.Element && myReader.Name == "test")
  42. {
  43. for (int i = 0; i < myReader.AttributeCount; i++)
  44. {
  45. Console.WriteLine(myReader.GetAttribute(i));
  46. }
  47. }
  48. }
  49. myReader.Close();
  50. }
  51. private void StopWatch_Click(object sender, EventArgs e)
  52. {
  53. XmlWatcher.EnableRaisingEvents = false;
  54. }
  55. private void Clean_Click(object sender, EventArgs e)
  56. {
  57. OperateResult.Clear();
  58. }
  59. private void ChooseFolder_Click(object sender, EventArgs e)
  60. {
  61. FolderBrowserDialog folder = new FolderBrowserDialog();
  62. folder.Description = "选择监控文件夹";
  63. DialogResult result = folder.ShowDialog();
  64. if (result == DialogResult.OK)
  65. {
  66. FolderPath.Text = folder.SelectedPath;
  67. }
  68. }
  69. private void ReadNodeFromXML(string FileName)
  70. {
  71. }
  72. private void Form1_Load(object sender, EventArgs e)
  73. {
  74. }
  75. }
  76. }