private void FolderWatcher_Created(object sender, FileSystemEventArgs e) { // Console.WriteLine("Creating: "+e.Name); if (e.ChangeType == WatcherChangeTypes.Deleted) { Console.WriteLine("deleted"); return; } var path = e.FullPath; var watchType = WatcherType.FileCreate; if (IsDir(path) && !IsInSubFolder(path)) {//creating folder watchType = WatcherType.FolderCreate; subFolders.Add(path); var subfw = new FolderCompleteWatcher(new WatcherItem() { FullPath = path, WatcherType = watchType }, 5000);// if the folder created, and 5 seconds passed the folder size not changed then the folder create completed. subfw.FolderCompleted += Subfw_FolderCompleted; subfw.Start(); subfolderWatcher.Add(subfw); } if (IsInSubFolder(path)) {// in creating folder 'file, do not care. } else if (IsSubFolderFile(path)) {//if current file in exist subfolder ,do not care } else { //single file creating var fileWatchFype = WatcherType.FileCreate; // isReplace ? WatcherType.FileReplace : WatcherType.FileCreate; //Console.WriteLine(fileWatcher); if (!files.Contains(path)) { files.Add(path); // Console.WriteLine("changed file :" + path); var fw = new FileCompleteWatcher(new WatcherItem() { FullPath = path, WatcherType = fileWatchFype }); fw.FileCompleted += Fw_FileCompleted; fw.Start(); fileWatcher.Add(fw); } } // OnFolderCreated(new FolderFileEventArgs() {FullPath = path}); }
private void FolderWatcher_Changed(object sender, FileSystemEventArgs e) { // Console.WriteLine("changing:{0}",e.FullPath); var path = e.FullPath; // var isReplace = File.Exists(path); if (IsDir(path) && !IsInSubFolder(path)) { //ignore this issue, do not care. // if folder copy // Console.WriteLine("copying folder :" + path); //subFolders.Add(path); //var subfw = // new FolderCompleteWatcher(new WatcherItem() { FullPath = path, WatcherType = WatcherType.FolderCopy }); //subfw.FolderCompleted += Subfw_FolderCompleted; //subfw.Start(); //subfolderWatcher.Add(subfw); } else if (IsInSubFolder(path)) {// in copying folder 'file, do not care. } else if (IsSubFolderFile(path)) {// if is file,and in existing subdir,then current is subfolder replacing var subDirItem = GetSubFolderItem(path); // Console.WriteLine("replacing folder :" + subDirItem); subFolders.Add(subDirItem); var subfw = new FolderCompleteWatcher(new WatcherItem() { FullPath = subDirItem, WatcherType = WatcherType.FolderReplace }); subfw.FolderCompleted += Subfw_FolderCompleted; subfw.Start(); subfolderWatcher.Add(subfw); } else {// single file copy var fileWatchFype = WatcherType.FileReplace;// isReplace ? WatcherType.FileReplace : WatcherType.FileCreate; //Console.WriteLine(fileWatcher); if (!files.Contains(path)) { files.Add(path); // Console.WriteLine("changed file :" + path); var fw = new FileCompleteWatcher(new WatcherItem() { FullPath = path, WatcherType = fileWatchFype }); fw.FileCompleted += Fw_FileCompleted; fw.Start(); fileWatcher.Add(fw); } } }