/// <summary> /// 分卷压缩指定文件或目录 /// </summary> /// <param name="fileOrDirectoryName">要进行压缩的文件或目录名称</param> /// <param name="zipPath">生成的压缩文件路径</param> /// <param name="dataUnit">分卷数据单位</param> /// <param name="segmentSize">分卷大小</param> public static void Compress(String fileOrDirectoryName, String zipPath, DiskSizeUnit dataUnit, int segmentSize) { using (ZipFile zip = new ZipFile(Encoding.GetEncoding("utf-8"))) { zip.MaxOutputSegmentSize = (int)dataUnit * segmentSize; zip.AddItem(fileOrDirectoryName, ""); zip.Save(zipPath); } }
public static double GetFreeSpaceForDrive(DriveInfo driveInfo, DiskSizeUnit sizeUnit) { double freeSpace = -1; double formatDivideBy = 1; if (driveInfo != null) { long freeSpaceNative = driveInfo.AvailableFreeSpace; formatDivideBy = Math.Pow(1024, (int)sizeUnit); freeSpace = freeSpaceNative / formatDivideBy; } return(freeSpace); }
public static double FreeSpace(string driveLetter, DiskSizeUnit sizeUnit = DiskSizeUnit.MegaBytes) { double whatIsFreeSpace = -1; var driveInfo = new DriveInfo(driveLetter); { var freeSpaceNative = driveInfo.AvailableFreeSpace; var dividedBy = Math.Pow(1024, (int)sizeUnit); whatIsFreeSpace = freeSpaceNative / dividedBy; } return(whatIsFreeSpace); }
/// <summary> /// Total free space formatted /// </summary> /// <param name="driveInfo">Set drive info</param> /// <param name="sizeUnit">Set disk size unit</param> /// <returns>System.Double.</returns> public static double TotalFreeSpaceFormatted(this DriveInfo driveInfo, DiskSizeUnit sizeUnit) { double freeSpace = -1; double formatDivideBy = 1; if (driveInfo != null) { long freeSpaceNative = driveInfo.TotalFreeSpace; formatDivideBy = Math.Pow(1024, (int)sizeUnit); freeSpace = freeSpaceNative / formatDivideBy; } return(freeSpace); }
public static double GetFreeSpaceForDriveByFileOrFolder(string fileOrFolderPath, DiskSizeUnit unit) { string driveLetter = Path.GetPathRoot(fileOrFolderPath); DriveInfo drive = new DriveInfo(driveLetter); var space = GetFreeSpaceForDrive(drive, unit); return(space); }