public void TestAssembleCompositeDirectory() { var origSrcDir = @"D:\T001"; var currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder"); var targetDir = @"D:\T002"; var fU = new FileUtility(new LogAndDisplayController(new AppConfigurationModes{ExecutionMode = AppExecutionMode.ExecuteWithoutLog})); var nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir); Assert.IsTrue(nTarget == @"D:\T002\TestFolder","T91"); origSrcDir = @"D:\T001\TestFolder"; targetDir = @"D:\T002"; currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin\"); nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir); Assert.IsTrue(nTarget == @"D:\T002\Bin"); origSrcDir = @"D:\T001\"; currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin"); targetDir = @"D:\T002"; nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir); Assert.IsTrue(nTarget == @"D:\T002\TestFolder\Bin","T92"); origSrcDir = @"D:\T001"; currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin"); targetDir = @"D:\T002\"; nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir); Assert.IsTrue(nTarget == @"D:\T002\TestFolder\Bin","T93"); origSrcDir = @"D:\T001\"; currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin\"); targetDir = @"D:\T002\"; nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir); Assert.IsTrue(nTarget == @"D:\T002\TestFolder\Bin","T94"); }
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)); } }