Example #1
0
        public void Test_GetAbsolutePath()
        {
            FilePathRelative      filePathTo;
            DirectoryPathAbsolute directoryPathFrom;

            filePathTo        = new FilePathRelative(@"..\File.txt");
            directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1");
            Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\File.txt");
            Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

            filePathTo        = new FilePathRelative(@".\File.txt");
            directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1");
            Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir1\File.txt");
            Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

            filePathTo        = new FilePathRelative(@"..\Dir2\File.txt");
            directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1");
            Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir2\File.txt");
            Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

            filePathTo        = new FilePathRelative(@"..\..\Dir4\Dir5\File.txt");
            directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1\Dir2\Dir3");
            Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir1\Dir4\Dir5\File.txt");
            Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

            filePathTo        = new FilePathRelative(@".\..\Dir4\Dir5\File.txt");
            directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1\Dir2\Dir3");
            Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir1\Dir2\Dir4\Dir5\File.txt");
            Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));
        }
Example #2
0
        public void Test_GetAbsolutePathPathWithError6()
        {
            FilePathRelative directoryPathTo = new FilePathRelative(@"..\..\Dir1\File.txt");

            Assert.IsFalse(directoryPathTo.CanGetAbsolutePathFrom(null));
            directoryPathTo.GetAbsolutePathFrom(null);
        }
Example #3
0
        public void Test_GetAbsolutePathPathWithError5()
        {
            FilePathRelative      directoryPathTo   = new FilePathRelative(@"..\..\Dir1\File.txt");
            DirectoryPathAbsolute directoryPathFrom = DirectoryPathAbsolute.Empty;

            Assert.IsFalse(directoryPathTo.CanGetAbsolutePathFrom(directoryPathFrom));
            directoryPathTo.GetAbsolutePathFrom(directoryPathFrom);
        }
Example #4
0
        public void Test_GetAbsolutePathPathWithError4()
        {
            FilePathRelative      directoryPathTo   = FilePathRelative.Empty;
            DirectoryPathAbsolute directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1");

            Assert.IsFalse(directoryPathTo.CanGetAbsolutePathFrom(directoryPathFrom));
            directoryPathTo.GetAbsolutePathFrom(directoryPathFrom);
        }
        private static string GetFilePathAbsoluteFrom(string baseAbsolutePath, string relativePath)
        {
            var absoluteBase = new FilePathAbsolute(baseAbsolutePath).ParentDirectoryPath;
            var relativeFilePath = new FilePathRelative(relativePath);

            return relativeFilePath.GetAbsolutePathFrom(absoluteBase).Path;
        }
Example #6
0
   static void Main(string[] args) {
      FilePathAbsolute filePathAbsolute1, filePathAbsolute2;
      FilePathRelative filePathRelative1;
      DirectoryPathAbsolute directoryPathAbsolute1;
      DirectoryPathRelative directoryPathRelative1;



      //  Path normalization
      filePathAbsolute1 = new FilePathAbsolute(@"C:/Dir1\\File.txt");
      Debug.Assert(filePathAbsolute1.Path == @"C:\Dir1\File.txt");

      directoryPathAbsolute1 = new DirectoryPathAbsolute(@"C:/Dir1\\Dir2\");
      Debug.Assert(directoryPathAbsolute1.Path == @"C:\Dir1\Dir2");

      directoryPathAbsolute1 = new DirectoryPathAbsolute(@"C:\Dir1\..\Dir2\.");
      Debug.Assert(directoryPathAbsolute1.Path == @"C:\Dir2");



      // Path comparison
      filePathAbsolute1 = new FilePathAbsolute(@"C:/Dir1\\File.txt");
      filePathAbsolute2 = new FilePathAbsolute(@"C:\DIR1\FILE.TXT");
      Debug.Assert(filePathAbsolute1.Equals(filePathAbsolute2));
      Debug.Assert(filePathAbsolute1 == filePathAbsolute2);



      // Relative -> Absolute path conversion
      filePathRelative1 = new FilePathRelative(@"..\..\Dir1\File.txt");
      directoryPathAbsolute1 = new DirectoryPathAbsolute(@"C:\Dir2\Dir3\Dir4");
      filePathAbsolute1 = filePathRelative1.GetAbsolutePathFrom(directoryPathAbsolute1);
      Debug.Assert( filePathAbsolute1.Path == @"C:\Dir2\Dir1\File.txt");



      // Absolute -> Relative path conversion
      filePathAbsolute1 = new FilePathAbsolute(@"C:\Dir1\File.txt");
      directoryPathAbsolute1 = new DirectoryPathAbsolute(@"C:\Dir2\Dir3\Dir4");
      filePathRelative1 = filePathAbsolute1.GetPathRelativeFrom(directoryPathAbsolute1);
      Debug.Assert(filePathRelative1.Path == @"..\..\..\Dir1\File.txt");



      // Path string validation
      string reason;
      Debug.Assert(PathHelper.IsValidAbsolutePath(@"C:\Dir2\Dir1", out reason));
      Debug.Assert(!PathHelper.IsValidAbsolutePath(@"C:\..\Dir1", out reason));
      Debug.Assert(!PathHelper.IsValidAbsolutePath(@".\Dir1", out reason));
      Debug.Assert(!PathHelper.IsValidAbsolutePath(@"1:\Dir1", out reason));
      Debug.Assert(PathHelper.IsValidRelativePath(@".\Dir1\Dir2", out reason));
      Debug.Assert(PathHelper.IsValidRelativePath(@"..\Dir1\Dir2", out reason));
      Debug.Assert(PathHelper.IsValidRelativePath(@".\Dir1\..\Dir2", out reason));
      Debug.Assert(!PathHelper.IsValidRelativePath(@".\Dir1\..\..\Dir2", out reason));
      Debug.Assert(!PathHelper.IsValidRelativePath(@"C:\Dir1\Dir2", out reason));



      // File name & extension
      filePathAbsolute1 = new FilePathAbsolute(@"C:\Dir1\File.cs.Txt");
      Debug.Assert(filePathAbsolute1.FileName == "File.cs.Txt");
      Debug.Assert(filePathAbsolute1.FileNameWithoutExtension == "File.cs");
      Debug.Assert(filePathAbsolute1.FileExtension == ".Txt");
      Debug.Assert(filePathAbsolute1.HasExtension(".txt"));



      // Path browsing
      filePathAbsolute1 = new FilePathAbsolute(@"C:\Dir1\File.cs.Txt");
      Debug.Assert(filePathAbsolute1.ParentDirectoryPath.Path == @"C:\Dir1");
      Debug.Assert(filePathAbsolute1.GetBrotherFileWithName("File.xml").Path == @"C:\Dir1\File.xml");
      Debug.Assert(filePathAbsolute1.ParentDirectoryPath.GetChildDirectoryWithName("Dir2").Path == @"C:\Dir1\Dir2");
      Debug.Assert(filePathAbsolute1.ParentDirectoryPath.GetChildDirectoryWithName("..").Path == @"C:");

      directoryPathRelative1 = new DirectoryPathRelative(@"..\Dir1\Dir2");
      Debug.Assert(directoryPathRelative1.ParentDirectoryPath.Path == @"..\Dir1");



      // Path rebasing
      directoryPathAbsolute1 = new DirectoryPathAbsolute(@"C:\Dir1\Dir2\Dir3");
      DirectoryPathAbsolute directoryPathAbsolute2 = new DirectoryPathAbsolute(@"E:\Dir4\Dir1");
      DirectoryPathAbsolute rebasedPath;
      PathHelper.TryRebasePath(directoryPathAbsolute1, directoryPathAbsolute2, out rebasedPath);
      Debug.Assert(rebasedPath.Path == @"E:\Dir4\Dir1\Dir2\Dir3");


      // List of path  ListOfPathsEquals \ Contains \ TryGetCommonRootDirectory 
      List<DirectoryPathAbsolute> list1 = new List<DirectoryPathAbsolute>();
      List<DirectoryPathAbsolute> list2 = new List<DirectoryPathAbsolute>();
      list1.Add(new DirectoryPathAbsolute(@"C:\Dir1\Dir2"));
      list2.Add(new DirectoryPathAbsolute(@"c:\dir1\dir2"));
      list1.Add(new DirectoryPathAbsolute(@"C:\Dir1\Dir3\Dir4"));
      list2.Add(new DirectoryPathAbsolute(@"c:\dir1\dir3\dir4"));
      Debug.Assert(ListOfPathHelper.ListOfPathsEquals(list1, list2));
      Debug.Assert(ListOfPathHelper.Contains(list1, new DirectoryPathAbsolute(@"C:\Dir1\dir2")));
      ListOfPathHelper.TryGetCommonRootDirectory(list1, out directoryPathAbsolute1);
      Debug.Assert(directoryPathAbsolute1.Path == @"C:\Dir1");


      // List of path   GetListOfUniqueDirsAndUniqueFileNames
      List<FilePathAbsolute> list = new List<FilePathAbsolute>();
      list.Add(new FilePathAbsolute(@"E:\Dir1\Dir2\File1.txt"));
      list.Add(new FilePathAbsolute(@"E:\dir1\dir2\File2.txt"));
      list.Add(new FilePathAbsolute(@"E:\Dir1\Dir2\Dir3\file2.txt"));
      List<DirectoryPathAbsolute> listOfUniqueDirs;
      List<string> listOfUniqueFileNames;
      ListOfPathHelper.GetListOfUniqueDirsAndUniqueFileNames(list, out listOfUniqueDirs, out listOfUniqueFileNames);
      Debug.Assert(listOfUniqueDirs.Count == 2);
      Debug.Assert(listOfUniqueDirs[0].Path == @"E:\Dir1\Dir2");
      Debug.Assert(listOfUniqueDirs[1].Path == @"E:\Dir1\Dir2\Dir3");
      Debug.Assert(listOfUniqueFileNames.Count == 2);
      Debug.Assert(listOfUniqueFileNames[0] == "File1.txt");
      Debug.Assert(listOfUniqueFileNames[1] == "File2.txt");


      // Interaction with System.IO API
      filePathAbsolute1 = new FilePathAbsolute(
         System.Reflection.Assembly.GetExecutingAssembly().Location);
      Debug.Assert(filePathAbsolute1.Exists);
      System.IO.FileInfo fileInfo = filePathAbsolute1.FileInfo;

      directoryPathAbsolute1 = filePathAbsolute1.ParentDirectoryPath as DirectoryPathAbsolute;
      Debug.Assert(directoryPathAbsolute1.Exists);
      System.IO.DirectoryInfo directoryInfo = directoryPathAbsolute1.DirectoryInfo;

      List<DirectoryPathAbsolute> listSubDir = directoryPathAbsolute1.ChildrenDirectoriesPath;
      List<FilePathAbsolute> listSubFile = directoryPathAbsolute1.ChildrenFilesPath;

   }
Example #7
0
 public void Test_GetAbsolutePathPathWithError6()
 {
     FilePathRelative directoryPathTo = new FilePathRelative(@"..\..\Dir1\File.txt");
      Assert.IsFalse(directoryPathTo.CanGetAbsolutePathFrom(null));
      directoryPathTo.GetAbsolutePathFrom(null);
 }
Example #8
0
 public void Test_GetAbsolutePathPathWithError5()
 {
     FilePathRelative directoryPathTo = new FilePathRelative(@"..\..\Dir1\File.txt");
      DirectoryPathAbsolute directoryPathFrom = DirectoryPathAbsolute.Empty;
      Assert.IsFalse(directoryPathTo.CanGetAbsolutePathFrom(directoryPathFrom));
      directoryPathTo.GetAbsolutePathFrom(directoryPathFrom);
 }
Example #9
0
        public void Test_GetAbsolutePath()
        {
            FilePathRelative filePathTo;
             DirectoryPathAbsolute directoryPathFrom;

             filePathTo = new FilePathRelative(@"..\File.txt");
             directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1");
             Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\File.txt");
             Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

             filePathTo = new FilePathRelative(@".\File.txt");
             directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1");
             Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir1\File.txt");
             Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

             filePathTo = new FilePathRelative(@"..\Dir2\File.txt");
             directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1");
             Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir2\File.txt");
             Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

             filePathTo = new FilePathRelative(@"..\..\Dir4\Dir5\File.txt");
             directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1\Dir2\Dir3");
             Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir1\Dir4\Dir5\File.txt");
             Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));

             filePathTo = new FilePathRelative(@".\..\Dir4\Dir5\File.txt");
             directoryPathFrom = new DirectoryPathAbsolute(@"C:\Dir1\Dir2\Dir3");
             Assert.IsTrue(filePathTo.GetAbsolutePathFrom(directoryPathFrom).Path == @"C:\Dir1\Dir2\Dir4\Dir5\File.txt");
             Assert.IsTrue(filePathTo.CanGetAbsolutePathFrom(directoryPathFrom));
        }