static void Main(string[] args) { Log.NewEntry("BeganIMSFileCopier"); while (true) { if (!Directory.Exists(dir.destinationDirectory)) { Log.NewEntry("Can't find Destination Directory", dir.destinationDirectory); fileWatcher.DisableWatcher(); fileWatcherEnabled = false; allFilesCopied = false; try { Directory.CreateDirectory(dir.destinationDirectory); Log.NewEntry("Destination Directory created", dir.destinationDirectory); } catch (Exception) { Log.NewEntry("Destination Directory could not be created", dir.destinationDirectory); Thread.Sleep(5000); continue; } } if (!allFilesCopied) { ThreadPool.QueueUserWorkItem(_ => FileCopier.CopyAllFiles(dir.sourceDirectory, dir.destinationDirectory)); allFilesCopied = true; } if (!fileWatcherEnabled) { fileWatcher.EnableWatcher(); fileWatcherEnabled = true; } Thread.Sleep(100); } ////Console.WriteLine("High Speed File Copier \n\r"); //EstablishConnectionsToDirectories(); //ThreadPool.QueueUserWorkItem(_ => FileCopier.CopyAllFiles(dir.sourceDirectory, dir.destinationDirectory)); //fileWatcher.EnableWatcher(); //new Thread(delegate () //{ // MaintainConnectionsToDirectories(); //}).Start(); //// Hold main thread indefinitely. End program with Red X. //while (true) //{ // Thread.Sleep(10000); //} }
/// <summary> /// Copies all files the FileWatcher catches as Created /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <param name="src">Source Directory</param> /// <param name="dest">Destination Directory</param> private void OnCreated(object sender, FileSystemEventArgs e, string src, string dest) { ThreadPool.QueueUserWorkItem(_ => FileCopier.CopyFile(e.FullPath, src, dest)); }