internal static void Main(string[] args) { //Console.OutputEncoding = Encoding.UTF8; CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture(Config.Configuration.Culture.Name); var fileSystemSorters = SortersInitializer.InitializeFileSystemSorters().ToList(); Console.WriteLine(ResourceManagment.GetString("EnableDisableTrackingTip")); Console.CancelKeyPress += (o, e) => Environment.Exit(0); while (true) { var key = Console.ReadKey().Key; switch (key) { case ConsoleKey.D: fileSystemSorters.ForEach(sorter => sorter.directoryWorker.EnableRaisingEvents = false); Console.WriteLine(); Console.WriteLine(ResourceManagment.GetString("TrackingStopped")); break; case ConsoleKey.E: fileSystemSorters.ForEach(sorter => sorter.directoryWorker.EnableRaisingEvents = true); Console.WriteLine(); Console.WriteLine(ResourceManagment.GetString("TrackingStarted")); break; } } }
public static IEnumerable <SorterService.ClassLibrary.FileListener> InitializeFileSystemSorters() { var fileSystemProvider = new FileSystemWorker(); foreach (ListenDirectoryElement directory in Config.Configuration.ListenDirectories) { var directoryWatcher = new DirectoryWorker(directory.Path) { IncludeSubdirectories = true }; var fileSystemSorter = new SorterService.ClassLibrary.FileListener(directoryWatcher, Config.Configuration.DefaultDirectory.Path, fileSystemProvider) { Rules = Config.Configuration.patternPathDictionary, GenerateNewFileName = NameWorker.GenerateNewFileName }; fileSystemSorter.directoryWorker.Created += OnCreated; fileSystemSorter.directoryWorker.Changed += OnChanged; fileSystemSorter.directoryWorker.Deleted += OnDeleted; fileSystemSorter.RuleFound += (s, e) => Console.WriteLine(ResourceManagment.GetString("FileFoundMessage"), e.Rule, e.FileName, e.PathToMove); fileSystemSorter.RuleNotFound += (s, e) => Console.WriteLine(ResourceManagment.GetString("FileNotFoundMessage"), e.FileName, e.DefaultPath); yield return(fileSystemSorter); } }
private static void OnDeleted(object sender, FileSystemEventArgs e) { Console.WriteLine(ResourceManagment.GetString("EntityDeletedMsg"), NameWorker.GetFileNameWithoutFolders(e.Name), NameWorker.GetPathWithoutFile(e.FullPath)); }