FileItem.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace AgrigateData
  8. {
  9. class FileItem
  10. {
  11. public static List<Item> list;
  12. public static void init()
  13. {
  14. list = new List<Item>();
  15. }
  16. public static void addFileItem(String path)
  17. {
  18. string line;
  19. System.IO.StreamReader file = new System.IO.StreamReader(path);
  20. String[] splitters = { "##" };
  21. String[] parts;
  22. TimeSpan timespan;
  23. while ((line = file.ReadLine()) != null)
  24. {
  25. if (line.Contains("##"))
  26. {
  27. parts = line.Split(splitters, StringSplitOptions.None);
  28. timespan = DateTime.Parse(parts[0]).Subtract(DateTime.Parse(parts[1]));
  29. Item.secondsToAdd = (int)timespan.TotalSeconds;
  30. continue;
  31. }
  32. if (line.Contains("///"))
  33. {
  34. Item item = new Item(line);
  35. list.Add(item);
  36. }
  37. }
  38. file.Close();
  39. }
  40. public static void writeFile(String path)
  41. {
  42. list = SortAscending(list);
  43. if (!File.Exists(path))
  44. {
  45. // Create a file to write to.
  46. using (StreamWriter sw = File.CreateText(path))
  47. {
  48. foreach (Item item in list)
  49. {
  50. String s = "";
  51. if (item.sourceIP.Length <= 13)
  52. { s = "\t \t: "; }
  53. else
  54. { s = " \t: "; }
  55. if (item.sourceIP.Length <= 10)
  56. { s = "\t \t\t: "; }
  57. String s1 = "";
  58. if (item.desIP.Length <= 13)
  59. { s1 = "\t \t: "; }
  60. else
  61. { s1 = " \t: "; }
  62. if (item.desIP.Length <= 10)
  63. { s1 = "\t \t\t: "; }
  64. sw.WriteLine(item.datetime.ToString("MM/dd/yyyy hh:mm:ss.fff tt")
  65. + " # " + item.sourceIP
  66. + s + item.sourcePort
  67. + "\t# " + item.desIP
  68. + s1 + item.desPort);
  69. }
  70. }
  71. }
  72. }
  73. static List<Item> SortAscending(List<Item> list)
  74. {
  75. list.Sort((a, b) => a.datetime.CompareTo(b.datetime));
  76. return list;
  77. }
  78. }
  79. }