public void Copy(FileSystemEventWrapper e) { var origin = Path.Combine(_rootPath, e.Name); var target = Path.Combine(_targetPath, e.Name); var targetDirectory = Path.GetDirectoryName(target); if (targetDirectory == null) throw new NullReferenceException(); if (!Directory.Exists(targetDirectory)) { Directory.CreateDirectory(targetDirectory); } else { TryRemoveReadonly(target); } File.Copy(origin, target, true); }
protected bool Equals(FileSystemEventWrapper other) { return string.Equals(Name, other.Name) && string.Equals(NewName, other.NewName) && ChangeType == other.ChangeType; }
public void Delete(FileSystemEventWrapper e) { Delete(e.Name); }
private void TimerCallback(object state) { FileSystemEventWrapper e; var last = new FileSystemEventWrapper { ChangeType = WatcherChangeTypes.All, Name = "", NewName = "" }; while (_queue.TryDequeue(out e)) { try { if (e == last) continue; switch (e.ChangeType) { case WatcherChangeTypes.Created: ColorConsole.Write(ConsoleColor.DarkGreen, "Creating"); Console.Write(" {0}..", e.Name); Copy(e); Console.WriteLine(" OK!"); break; case WatcherChangeTypes.Deleted: ColorConsole.Write(ConsoleColor.DarkRed, "Deleting"); Console.Write(" {0}..", e.Name); Delete(e); Console.WriteLine(" OK!"); break; case WatcherChangeTypes.Changed: Console.Write("Copying {0}..", e.Name); Copy(e); Console.WriteLine(" OK!"); break; case WatcherChangeTypes.Renamed: ColorConsole.Write(ConsoleColor.DarkYellow, "Moving"); Console.Write(" {0} to {1}..", e.Name, e.NewName); Move(e); Console.WriteLine(" OK!"); break; } } catch (Exception ex) { Console.WriteLine(" ERROR!"); Console.WriteLine(ex.Message); } last = e; } }
private void HandleEvent(FileSystemEventWrapper e) { _timer.Change(_activityTimeout, Timeout.Infinite); _queue.Enqueue(e); }
public void Move(FileSystemEventWrapper e) { var oldName = Path.Combine(_targetPath, e.Name); var newName = Path.Combine(_targetPath, e.NewName); if (File.Exists(oldName)) { if (File.Exists(newName)) Delete(newName); File.Move(oldName, newName); } else { Copy(e); } }