public NPath Move(NPath dest) { ThrowIfRelative(); if (dest.IsRelative) { return(Move(Parent.Combine(dest))); } if (dest.DirectoryExists()) { return(Move(dest.Combine(FileName))); } if (FileExists()) { dest.EnsureParentDirectoryExists(); File.Move(ToString(), dest.ToString()); return(dest); } if (DirectoryExists()) { Directory.Move(ToString(), dest.ToString()); return(dest); } throw new ArgumentException("Move() called on a path that doesn't exist: " + ToString()); }
NPath CopyWithDeterminedDestination(NPath absoluteDestination, Func <NPath, bool> fileFilter) { if (absoluteDestination.IsRelative) { throw new ArgumentException("absoluteDestination must be absolute"); } if (FileExists()) { if (!fileFilter(absoluteDestination)) { return(null); } absoluteDestination.EnsureParentDirectoryExists(); File.Copy(ToString(), absoluteDestination.ToString(), true); return(absoluteDestination); } if (DirectoryExists()) { absoluteDestination.EnsureDirectoryExists(); foreach (var thing in Contents()) { thing.CopyWithDeterminedDestination(absoluteDestination.Combine(thing.RelativeTo(this)), fileFilter); } return(absoluteDestination); } throw new ArgumentException("Copy() called on path that doesnt exist: " + ToString()); }
public static string HashOfFile(NPath path) { string str; using (MD5 md = MD5.Create()) { using (FileStream stream = File.OpenRead(path.ToString())) { str = HashToString(md.ComputeHash(stream)); } } return str; }
public NPath Copy(NPath dest, Func <NPath, bool> fileFilter) { ThrowIfRelative(); if (dest.IsRelative) { dest = Parent().Combine(dest); } if (dest.DirectoryExists()) { return(Copy(dest.Combine(FileName), fileFilter)); } if (FileExists()) { if (!fileFilter(dest)) { return(null); } dest.EnsureParentDirectoryExists(); File.Copy(ToString(), dest.ToString(), true); return(dest); } if (DirectoryExists()) { dest.EnsureDirectoryExists(); foreach (var thing in Contents()) { thing.Copy(dest.Combine(thing.RelativeTo(this)), fileFilter); } return(dest); } throw new ArgumentException("Copy() called on path that doesnt exist: " + ToString()); }
public NPath Move(NPath dest) { ThrowIfRelative(); if (dest.IsRelative) return Move(Parent.Combine(dest)); if (dest.DirectoryExists()) return Move(dest.Combine(FileName)); if (FileExists()) { dest.EnsureParentDirectoryExists(); File.Move(ToString(), dest.ToString()); return dest; } if (DirectoryExists()) { Directory.Move(ToString(), dest.ToString()); return dest; } throw new ArgumentException("Move() called on a path that doesn't exist: " + ToString()); }
NPath CopyWithDeterminedDestination(NPath absoluteDestination, Func<NPath,bool> fileFilter) { if (absoluteDestination.IsRelative) throw new ArgumentException ("absoluteDestination must be absolute"); if (FileExists()) { if (!fileFilter(absoluteDestination)) return null; absoluteDestination.EnsureParentDirectoryExists(); File.Copy(ToString(), absoluteDestination.ToString(), true); return absoluteDestination; } if (DirectoryExists()) { absoluteDestination.EnsureDirectoryExists(); foreach (var thing in Contents()) thing.CopyWithDeterminedDestination(absoluteDestination.Combine(thing.RelativeTo(this)), fileFilter); return absoluteDestination; } throw new ArgumentException("Copy() called on path that doesnt exist: " + ToString()); }
public static string Execute(NiceIO.NPath filename, string arguments, Dictionary <string, string> envVars = null) { return(Execute(filename.ToString(), arguments, envVars)); }