コード例 #1
0
 public static Int64 DirectorySize(this string folderPath)
 {
     return(SystemIOFileHelpers.EnrichIoException(folderPath,
                                                  () => folderPath.DirectoryFilesSearchAllDirectories("*.*")
                                                  .Select(fn => SystemIOFileHelpers.FileSize(fn))
                                                  .Sum()));
 }
コード例 #2
0
        public static bool DirectoryExists(this string pathToTest)
        {
            return(SystemIOFileHelpers.EnrichIoException(pathToTest,
                                                         () =>
            {
                if (Directory.Exists(pathToTest))
                {
                    return true;
                }

                // If d.e says no, we should check whether it's because it can't tell, or because it can't determine

                if (System.IO.File.Exists(pathToTest))
                {
                    return false;
                }

                try
                {
                    // Try to get the file listing of the dir.
                    pathToTest.DirectoryFiles("_test_");
                    return true;
                }
                catch (DirectoryNotFoundException)
                {
                    return false;
                }
            }
                                                         ));
        }
コード例 #3
0
 public static void CreateDirectory(this string directory)
 {
     if (!directory.DirectoryExists())
     {
         SystemIOFileHelpers.EnrichIoException(directory,
                                               () =>
         {
             Directory.CreateDirectory(directory);
         });
     }
 }
コード例 #4
0
 public static void MoveFileOrDirectory(this string filePath, string targetPath)
 {
     SystemIOFileHelpers.EnrichIoException(filePath, targetPath,
                                           () =>
     {
         targetPath.GetDirectoryName().CreateDirectory();
         if (filePath.FileExists())
         {
             System.IO.File.Move(filePath, targetPath);
         }
         else if (filePath.DirectoryExists())
         {
             MoveDirectory(filePath, targetPath);
         }
     });
 }
コード例 #5
0
 public static void DeleteDirectoryIfEmpty(this string dir)
 {
     SystemIOFileHelpers.EnrichIoException(dir,
                                           () =>
     {
         if (dir.DirectoryExists())
         {
             Directory.Delete(dir);
             if (dir.DirectoryExists())
             {
                 throw new IOException(
                     "Directory.Delete passed, but the directory still exists")
                 .AddPath(dir);
             }
         }
     });
 }
コード例 #6
0
 public static void MoveDirectory(this string sourcePath, string targetPath)
 {
     SystemIOFileHelpers.EnrichIoException(sourcePath, targetPath,
                                           () =>
     {
         var sourceRoot = sourcePath.GetPathRoot();
         var targetRoot = targetPath.GetPathRoot();
         targetPath.GetDirectoryName().CreateDirectory();
         if (sourceRoot.Equals(targetRoot))
         {
             Directory.Move(sourcePath, targetPath);
         }
         else
         {
             MoveDirectoryWithDifferentRoots(sourcePath, targetPath);
         }
     });
 }
コード例 #7
0
        public static void CopyDirectory(this string srcDirectoryPath, string targetDirectoryPath)
        {
            SystemIOFileHelpers.EnrichIoException(srcDirectoryPath, targetDirectoryPath,
                                                  () =>
            {
                targetDirectoryPath.CreateDirectory();
                foreach (var path in Directory.GetDirectories(srcDirectoryPath))
                {
                    var destDir = path.Replace(srcDirectoryPath, targetDirectoryPath);
                    path.CopyDirectory(destDir);
                }

                foreach (
                    var path in
                    srcDirectoryPath.DirectoryFiles())
                {
                    var destPath = path.Replace(srcDirectoryPath, targetDirectoryPath);
                    path.CopyFile(destPath);
                }
            });
        }
コード例 #8
0
 public static bool IsDirectory(this string path)
 {
     return(SystemIOFileHelpers.EnrichIoException(path, () => path.DirectoryExists()));
 }
コード例 #9
0
 public static void MoveDirectory_Persist(this string filePath, string targetPath)
 {
     SystemIOFileHelpers.Persist(() => filePath.MoveDirectory(targetPath));
 }
コード例 #10
0
 public static void DeleteDirectoryFull_Persist(this string directory)
 {
     SystemIOFileHelpers.Persist(() => DeleteDirectoryFull(directory));
 }