AcTools.Utils.FileUtils.CopyRecursiveHardlink C# (CSharp) Method

CopyRecursiveHardlink() public static method

public static CopyRecursiveHardlink ( string source, string destination ) : void
source string
destination string
return void
        public static void CopyRecursiveHardlink(string source, string destination) {
            if (File.GetAttributes(source).HasFlag(FileAttributes.Directory)) {
                Directory.CreateDirectory(destination);
                
                foreach (var dirPath in Directory.GetDirectories(source, "*", SearchOption.AllDirectories)) {
                    Directory.CreateDirectory(Path.Combine(destination, GetRelativePath(dirPath, source)));
                }
                
                foreach (var filePath in Directory.GetFiles(source, "*", SearchOption.AllDirectories)) {
                    Hardlink(filePath, Path.Combine(destination, GetRelativePath(filePath, source)), true);
                }
            } else {
                Hardlink(source, destination, true);
            }
        }
    }