public void CreateXMLFile() { var parms = new CopyCommandParameters { CopySubdirectories = true, DeleteExistingDirectoriesFirst = true, DeleteExistingFilesFirst = true, WildCard = "*.*", FileName = "", RegExFilter = "", PostCopyAction = "" }; var cmd1 = new CopyFileCommand { CommandParameters = parms, SourceDirectory = @"D:\T001\TestFolder", TargetDirectory = @"D:\T002\TestFolder" }; var cmd2 = new CopyFileCommand { CommandParameters = parms, SourceDirectory = @"D:\T001", TargetDirectory = @"D:\T015" }; var cmd3 = new CopyFileCommand { CommandParameters = parms, SourceDirectory = @"D:\T001", TargetDirectory = @"D:\T003" }; var list = new List<CopyFileCommand> {cmd1,cmd2,cmd3}; var root = new CopyFileOperation { CopyFileCommands = list }; var u = new HelperUtility(); var serializer = new XmlSerializer(typeof (CopyFileOperation)); var output = Path.Combine(@"D:\CS_Test", u.XMLCommandFileName); var fs = new FileStream(output, FileMode.Create); serializer.Serialize(fs,root); fs.Close(); }
private void AssignCopyOperationByCopyMode(CopyFileCommand cmd, DirectoryInfo currSrcInfo, DirectoryInfo newTargInfo) { switch (cmd.CommandParameters.Mode) { case CopyMode.CopyByWildCard: DoCopyFilesByWildCard(cmd.CommandParameters, newTargInfo, currSrcInfo); break; case CopyMode.CopyByFileName: DoCopyFilesByFileName(cmd.CommandParameters, newTargInfo, currSrcInfo); break; case CopyMode.CopyByRegEx: DoCopyFilesByRegEx(cmd.CommandParameters, newTargInfo, currSrcInfo); break; default: throw new Exception(String.Format("Invlaid Copy Mode Presented: {0}",cmd.CommandParameters.Mode)); } }
public void SetUp() { var parms = new CopyCommandParameters { CopySubdirectories = true, DeleteExistingDirectoriesFirst = true, DeleteExistingFilesFirst = true, WildCard = "*.*" }; var cmd1 = new CopyFileCommand { CommandParameters = parms, SourceDirectory = @"D:\CS_Test", TargetDirectory = @"D:\T002" }; var cmd2 = new CopyFileCommand { CommandParameters = parms, SourceDirectory = @"D:\T001\TestFolder", TargetDirectory = @"D:\T015\TestFolder" }; var cmd3 = new CopyFileCommand { CommandParameters = parms, SourceDirectory = @"D:\T001", TargetDirectory = @"D:\T003" }; var list = new List<CopyFileCommand> {cmd1,cmd2,cmd3}; _copyFileOp = new CopyFileOperation { CopyFileCommands = list }; }
private void DoCopyCommand(CopyFileCommand cmd, string currSourceDir) { var uF = new FileUtility(_log); var uH = new HelperUtility(); var currSrcInfo = uH.ConvertStringPathToInfo(currSourceDir); if(currSrcInfo==null) { throw new Exception(String.Format("Invalid Srouce Directory Info: {0}", currSourceDir)); } var newTargetDir = uF.ComputeTargetDirectoryFromSourceDirectory(cmd.TargetDirectory,cmd.SourceDirectory, currSrcInfo); if(newTargetDir == null) { return; } if(!Directory.Exists(newTargetDir)) { try { Directory.CreateDirectory(newTargetDir); } catch(Exception e) { _log.LogAndDisplay(String.Format("Error Creating Target Directory: {0}",newTargetDir),e,LoggerMode.LogAndDisplayConsoleLine); return; } } var newTargInfo = uH.ConvertStringPathToInfo(newTargetDir); if(newTargInfo==null) { _log.LogAndDisplay(String.Format("Invalid Target Directory Info: {0}", newTargetDir),LoggerMode.LogAndDisplayConsoleLine); return; } _log.DisplayCopyDirectoryStatus(currSrcInfo.FullName, newTargInfo.FullName); AssignCopyOperationByCopyMode(cmd, currSrcInfo, newTargInfo); if(!cmd.CommandParameters.CopySubdirectories) { return; } var dirs = currSrcInfo.GetDirectories(); if(dirs.Length < 1) { return; } foreach (var dir in dirs) { DoCopyCommand(cmd, uH.RemoveTrailingDirectorySlash(dir.FullName)); } }
private bool ValidateCopyCommand(CopyFileCommand command) { if(!Directory.Exists(command.SourceDirectory)) { _log.LogAndDisplay(string.Format("Source Directory Invalid: {0}", command.SourceDirectory),LoggerMode.LogAndDisplayConsoleLine); return false; } if (!Directory.Exists(command.TargetDirectory)) { try { Directory.CreateDirectory(command.TargetDirectory); } catch(Exception e) { _log.LogAndDisplay("Failed to create Target Directory!",LoggerMode.LogAndDisplayConsoleLine); _log.LogAndDisplay(" Target: " + command.TargetDirectory,LoggerMode.LogAndDisplayConsoleLine); _log.LogAndDisplay(e,LoggerMode.LogOnlyNoDisplay); return false; } _log.LogAndDisplay(string.Format("Successfully Created Target Directory: {0}", command.TargetDirectory), LoggerMode.LogOnlyNoDisplay); } return true; }
private void ProcessCommand(CopyFileCommand command) { var fUtil = new FileUtility(_log); // By this point, command parameters have been validated if(command.CommandParameters.DeleteExistingFilesFirst) { fUtil.DeleteAllFilesInDirectoryTree(command.TargetDirectory); if(command.CommandParameters.DeleteExistingDirectoriesFirst) { fUtil.DeleteAllDirectoriesInTreeExceptTopDirectory(command.TargetDirectory); } } DoCopyCommand(command, command.SourceDirectory); }