//Unused method, but maybe someone wants it for manual testing or something? #pragma warning disable 0219 public void Execute() { var root = AbsoluteDirectoryPath.Parse("root"); var file1 = root.Combine("Templates").Combine("Projects").Combine(new FileName("example.exe")); var file2 = root / "Templates" / "Projects" / new FileName("example.exe"); IAbsolutePath absFileOrDirectory = file2; absFileOrDirectory.Do( (AbsoluteFilePath file) => Console.Out.WriteLine("File " + file), (AbsoluteDirectoryPath dir) => Console.Out.WriteLine("Dir " + dir)); IFilePath absOrRelFile = file2; absOrRelFile.Do( (AbsoluteFilePath abs) => Console.Out.WriteLine("Abs " + abs), (RelativeFilePath rel) => Console.Out.WriteLine("Rel " + rel)); var relativePath = RelativeDirectoryPath.Empty / ".." / "Programs" / "Fuse" / "Data"; var rebased = root / relativePath; var common = root / "a" / "b"; var nop = common.RelativeTo(common); var downUp = (common / "left").RelativeTo(common / "right"); var downDownUpUp = (common / "left" / "left2").RelativeTo(common / "right" / "right2"); var downDownDownUpUpUp = (common / "left" / "left2" / "left3").RelativeTo(common / "right" / "right2" / "right3"); var left = common / "lc" / "ld"; var right = common / "rc" / "rd" / "re"; var rightToLeft = left.RelativeTo(right); var leftToRight = right.RelativeTo(left); var leftToLeft = left.RelativeTo(left); var a = common / leftToLeft; var b = a == common; }
public static void Move(this IFileSystem fileSystem, IAbsolutePath source, IAbsolutePath destination) { source.Do( (AbsoluteFilePath file) => fileSystem.Move(file, (AbsoluteFilePath)destination), (AbsoluteDirectoryPath dir) => fileSystem.Move(dir, (AbsoluteDirectoryPath)destination)); }
public void Delete(IAbsolutePath path) { path.Do( (AbsoluteFilePath file) => File.Delete(file.NativePath), (AbsoluteDirectoryPath directory) => Directory.Delete(directory.NativePath, true)); }