Пример #1
0
 /// <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);
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #5
0
        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);
        }