/// <summary> /// 获取指定分区(或者驱动器)的驱动器格式或文件系统。 /// </summary> /// <param name="driveLetter">指定驱动器所对应的盘符。</param> /// <returns>该操作将会返回指定驱动器的文件系统,在Windows环境下,这个操作将不会获取UNIX以及衍生操作系统所支持的文件系统。</returns> public static EDriveFormat GetDriveFormat(string driveLetter) { EDriveFormat format = EDriveFormat.Win32NTFS; DriveInfo dInfo = new DriveInfo(driveLetter); string formatStr = dInfo.DriveFormat; switch (formatStr) { case DRIVE_FORMAT_FAT12: format = EDriveFormat.Win32FAT12; break; case DRIVE_FORMAT_FAT16: format = EDriveFormat.Win32FAT16; break; case DRIVE_FORMAT_FAT32: format = EDriveFormat.Win32FAT32; break; case DRIVE_FORMAT_NTFS: format = EDriveFormat.Win32NTFS; break; default: throw new UnsupportedDriveFormatException(); } return(format); }
public static long GetSupportedMaximalFileSize(EDriveFormat driveFormat) { long maximalFileSize = 0; switch (driveFormat) { #if UNIX_LINUX_MAC case EDriveFormat.LinuxExt: maximalFileSize = 2147483648; break; case EDriveFormat.LinuxExt2: maximalFileSize = 2199023255552; break; case EDriveFormat.LinuxExt3: case EDriveFormat.LinuxExt4: case EDriveFormat.LinuxJFS: maximalFileSize = 17592186044416; break; #endif #if WINDOWS case EDriveFormat.Win32NTFS: maximalFileSize = 68719476736; break; case EDriveFormat.Win32FAT12: maximalFileSize = 8388608; break; case EDriveFormat.Win32FAT16: maximalFileSize = 2147483648; break; case EDriveFormat.Win32FAT32: maximalFileSize = 4294967296; break; case EDriveFormat.Win32NTFSv5: default: maximalFileSize = 2199023255552; break; #endif } return(maximalFileSize); }