1. WatchForFile mw = new WatchForFile();
  2. List<WatchForFile> monitorThese = new List<WatchForFile>();
  3. List <String> extensions = new List<String>(textBoxOtherextensions.Text.Split(','));
  4. /*string[] extensionsarray */
  5.  
  6.  
  7. // extensions.AddRange((int).Length)
  8.  
  9. foreach (String s in extensions){
  10. WatchForFile mwf= new WatchForFile();
  11. mwf.watchThisFile(Properties.Settings.Default.Path, "*." + s);
  12. monitorThese.Add(mwf);
  13.  
  14. }
  15. public void OnRenamed(object sender, FileSystemEventArgs e)
  16. {
  17. try
  18. {
  19. FileInfo thisFile = new FileInfo(e.FullPath);
  20. System.Windows.MessageBox.Show("Filens Directory.Name = " +thisFile.Directory.Name+Environment.NewLine+"Filens thisFile.DirectoryName = " + thisFile.DirectoryName);
  21. System.IO.DirectoryInfo myPath = new System.IO.DirectoryInfo(thisFile.DirectoryName);
  22. FileInfo[] filearray = myPath.GetFiles();
  23. List<FileInfo> dirFiles = new List<FileInfo>();
  24. foreach(FileInfo f in filearray){
  25. dirFiles.Add(f);
  26. }
  27. FileInfo utExtension = dirFiles.Find(delegate(FileInfo f) { return f.Extension == "!ut"; });
  28. //Person myLocatedObject = myList.Find(delegate(Person p) {return p.ID == 1; }); // Best way for finding an object.
  29. if (utExtension != null)
  30. {
  31. Properties.Settings.Default.Log += Environment.NewLine + "Change detected, but !ut extension found. Doing nothing...";
  32.  
  33. }
  34. else
  35. {
  36. Properties.Settings.Default.Log += "Change detected, and no !ut extensions found. Trying to unzip...";
  37.  
  38. SevenZipExtractor.SetLibraryPath(@"..\7z.dll");
  39. string fileName = e.FullPath.ToString();
  40.  
  41. string directory = Properties.Settings.Default.Destination+thisFile.Directory.Name;
  42. var extractor = new SevenZipExtractor(fileName);
  43. extractor.Extracting += new EventHandler<ProgressEventArgs>(extr_Extracting);
  44. extractor.FileExtractionStarted += new EventHandler<FileInfoEventArgs>(extr_FileExtractionStarted);
  45. extractor.FileExists += new EventHandler<FileOverwriteEventArgs>(extr_FileExists);
  46. extractor.ExtractionFinished += new EventHandler<EventArgs>(extr_ExtractionFinished);
  47. extractor.BeginExtractArchive(directory);
  48. }
  49. }
  50. catch (Exception error)
  51. {
  52. System.Windows.MessageBox.Show("error: "+error.ToString());
  53. }
  54. }
  55.  
  56. public class WatchForFile
  57. {
  58.  
  59. FileSystemWatcher fmw = new FileSystemWatcher();
  60. public string watchThisFile(string path, string filter)
  61. {
  62. try
  63. {
  64. fmw.IncludeSubdirectories = true;
  65. fmw.Filter = filter;
  66. fmw.Path = path;
  67. fmw.NotifyFilter = NotifyFilters.FileName;
  68. fmw.EnableRaisingEvents = true;
  69. // Add event handlers.
  70. fmw.Renamed += new RenamedEventHandler(OnRenamed);
  71. return "Started Monitoring!";
  72. }
  73. catch (Exception error) { return error.ToString(); }
  74.  
  75.  
  76. }
  77. public string path
  78. {
  79. get { return fmw.Path; }
  80.  
  81. }
  82. public string filter { get { return fmw.Filter; } }
  83.  
  84. public virtual void OnRenamed(object sender, FileSystemEventArgs e){}
  85. }