public static void CopyEnvironmentSpecificFile(this ProtoServer s, string destination, string environment, string filename) { s.CopyFile(@".\..\environment.files\{0}\{0}.{1}".FormatWith(environment, filename)) .ToDirectory(destination); s.RenameFile(@"{0}\{1}.{2}".FormatWith(destination, environment, filename)) .To(filename); }
public static Task CopyDirectoryAsync(this IsolatedStorageFile Iso, string SourceDirectory, string TargetDirectory, IProgress<int> Progress, bool OverWrite = false) { Contract.Requires(Iso != null); Contract.Requires(Progress != null); Contract.Requires(Iso.DirectoryExists(SourceDirectory), "Source Directory does not exist"); return Task.Factory.StartNew(() => { Progress.Report(0); IList<string> relativeFilePaths; IList<string> relativeDirPaths; CollectSubdirectoriesAndFilesBreadthFirst(Iso, SourceDirectory, out relativeDirPaths, out relativeFilePaths); var totalElementCount = relativeDirPaths.Count + //SubDirectories 1 + //TargetDir relativeFilePaths.Count; // Files var reporter = new PercentageReporter<int>(Progress, p => p, totalElementCount); var absoluteDirs = from relativeDir in relativeDirPaths select Path.Combine(TargetDirectory, relativeDir); foreach (var dir in Enumerable.Repeat(TargetDirectory, 1).Concat(absoluteDirs)) { if (!Iso.DirectoryExists(dir)) { Iso.CreateDirectory(dir); } reporter.Completed++; } foreach (var relativeFile in relativeFilePaths) { var sourceFile = Path.Combine(SourceDirectory, relativeFile); var targetFile = Path.Combine(TargetDirectory, relativeFile); Iso.CopyFile(sourceFile, targetFile, OverWrite); reporter.Completed++; } }); }
public static DirectoryInfo CopyFileWithOnTheFlyReplacement(this DirectoryInfo di, DirectoryInfo toDir, Func<string, string> replacement, string file) { var newfile = di.CopyFile(file, toDir); newfile.ParseAndReplaceContent(replacement); return di; }
public static IVirtualFile CopyFile(this IVirtualDirectory directory, IVirtualFile file) { return directory.CopyFile(file, file.Name); }