Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.9 KiB

  1. /*+*******************************************************************************************
  2. Project : StringCheck
  3. File : dirscan.c
  4. Summary :
  5. Classes / Fcns :
  6. Notes / Revisions :
  7. *******************************************************************************************+*/
  8. using System;
  9. using System.IO;
  10. public class DirScan
  11. {
  12. /*M+M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++
  13. Method: public DirScan()
  14. Summary:
  15. Args:
  16. Modifies:
  17. Returns:
  18. M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M-M*/
  19. public DirScan()
  20. {
  21. } // constructor DirScan()
  22. /*M+M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++
  23. Method: public DirScan(string StartDir, string FileFilter, string SearchString, string OutputFile)
  24. Summary:
  25. Args:
  26. Modifies:
  27. Returns:
  28. M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M-M*/
  29. public DirScan(string StartDir, string FileFilter, string SearchString, string OutputFile)
  30. {
  31. Setup(StartDir, FileFilter, SearchString, OutputFile);
  32. } // constructor DirScan()
  33. /*---------------------------------------------------------
  34. Public Member Fcns
  35. ----------------------------------------------------------*/
  36. /*M+M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++
  37. Method: public Setup(string StartDir, string FileFilter, string SearchString, string OutputFile)
  38. Summary:
  39. Args:
  40. Modifies:
  41. Returns:
  42. M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M-M*/
  43. public void Setup(string StartDir, string FileFilter, string SearchString, string OutputFile)
  44. {
  45. this.StartDir = StartDir;
  46. this.FileFilter = FileFilter;
  47. this.SearchString = SearchString;
  48. this.OutputFile = OutputFile;
  49. } // public void Setup
  50. /*M+M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++
  51. Method: public void BeginScan()
  52. Summary:
  53. Args:
  54. Modifies:
  55. Returns:
  56. M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M-M*/
  57. public void BeginScan()
  58. {
  59. DirectoryInfo dir;
  60. FileScan file;
  61. String FullName;
  62. long FileSize;
  63. DateTime CreationDate;
  64. // Setup DirectoryInfo and FileScan instances;
  65. dir = new DirectoryInfo(StartDir);
  66. file = new FileScan();
  67. /*---------------------------------------------------------
  68. To Do: Need to set this up to call some type of
  69. callback fcn using whatever mecanisim C#
  70. supports.
  71. For now, I just call an instance of FileScan
  72. ----------------------------------------------------------*/
  73. try
  74. {
  75. foreach (FileInfo f in dir.GetFiles(FileFilter))
  76. {
  77. FullName = f.FullName;
  78. FileSize = f.Length;
  79. CreationDate= f.CreationTime;
  80. //Console.WriteLine("{0}", FullName);
  81. file.Setup(FullName, OutputFile, SearchString);
  82. if ( 0 == file.ScanFile())
  83. {
  84. Console.WriteLine("DirScan:BeginScan() - ERROR - file.ScanFile Failed. Exiting\n");
  85. return;
  86. }
  87. }
  88. }
  89. catch (System.IO.IOException)
  90. {
  91. Console.WriteLine("Caught System.IO.IOException while scanning {0}", FileFilter);
  92. }
  93. }// public void BeginScan
  94. /*---------------------------------------------------------
  95. Member vars
  96. ----------------------------------------------------------*/
  97. // Directory to scan
  98. private string StartDir = "..";
  99. // Files to scan for
  100. private string FileFilter = "*";
  101. // string to search for in each file
  102. private string SearchString = "*";
  103. // path + filename to write results to
  104. private string OutputFile = "out.txt";
  105. } // class DirScan