/// <summary> /// Get a root drive name /// </summary> public static string GetDriveInformations (string rootPathName, out uint serialNumber, out DriveInformations driveInformations, out string fileSystem) { uint uiSysFlags; string szDriveName = Win32ApiUtility.GetDriveInformations (rootPathName, out serialNumber, out uiSysFlags, out fileSystem); driveInformations = 0; if(szDriveName.Length != 0) { // Convert flags if ((uiSysFlags & (uint)DriveInformations.CaseSensitiveSearch ) == (uint)DriveInformations.CaseSensitiveSearch) driveInformations |= DriveInformations.CaseSensitiveSearch ; if ((uiSysFlags & (uint)DriveInformations.CasePreservedNames ) == (uint)DriveInformations.CasePreservedNames ) driveInformations |= DriveInformations.CasePreservedNames ; if ((uiSysFlags & (uint)DriveInformations.UnicodeOnDisk ) == (uint)DriveInformations.UnicodeOnDisk ) driveInformations |= DriveInformations.UnicodeOnDisk ; if ((uiSysFlags & (uint)DriveInformations.PersistentAcls ) == (uint)DriveInformations.PersistentAcls ) driveInformations |= DriveInformations.PersistentAcls ; if ((uiSysFlags & (uint)DriveInformations.FileCompression ) == (uint)DriveInformations.FileCompression ) driveInformations |= DriveInformations.FileCompression ; if ((uiSysFlags & (uint)DriveInformations.VolumeQuotas ) == (uint)DriveInformations.VolumeQuotas ) driveInformations |= DriveInformations.VolumeQuotas ; if ((uiSysFlags & (uint)DriveInformations.SparseFiles ) == (uint)DriveInformations.SparseFiles ) driveInformations |= DriveInformations.SparseFiles ; if ((uiSysFlags & (uint)DriveInformations.ReparsePoints ) == (uint)DriveInformations.ReparsePoints ) driveInformations |= DriveInformations.ReparsePoints ; if ((uiSysFlags & (uint)DriveInformations.RemoteStorage ) == (uint)DriveInformations.RemoteStorage ) driveInformations |= DriveInformations.RemoteStorage ; if ((uiSysFlags & (uint)DriveInformations.VolumeIsCompressed ) == (uint)DriveInformations.VolumeIsCompressed ) driveInformations |= DriveInformations.VolumeIsCompressed ; if ((uiSysFlags & (uint)DriveInformations.SupportObjectsIds ) == (uint)DriveInformations.SupportObjectsIds ) driveInformations |= DriveInformations.SupportObjectsIds ; if ((uiSysFlags & (uint)DriveInformations.SupportEncryption ) == (uint)DriveInformations.SupportEncryption ) driveInformations |= DriveInformations.SupportEncryption ; if ((uiSysFlags & (uint)DriveInformations.NamedStreams ) == (uint)DriveInformations.NamedStreams ) driveInformations |= DriveInformations.NamedStreams ; if ((uiSysFlags & (uint)DriveInformations.ReadOnlyVolume ) == (uint)DriveInformations.ReadOnlyVolume ) driveInformations |= DriveInformations.ReadOnlyVolume ; } return szDriveName; }
/// <summary> /// Get a root drive name /// </summary> public static string GetDriveInformations(string rootPathName, out uint serialNumber, out DriveInformations driveInformations, out string fileSystem) { uint uiSysFlags; string szDriveName = Win32ApiUtility.GetDriveInformations(rootPathName, out serialNumber, out uiSysFlags, out fileSystem); driveInformations = 0; if (szDriveName.Length != 0) { // Convert flags if ((uiSysFlags & (uint)DriveInformations.CaseSensitiveSearch) == (uint)DriveInformations.CaseSensitiveSearch) { driveInformations |= DriveInformations.CaseSensitiveSearch; } if ((uiSysFlags & (uint)DriveInformations.CasePreservedNames) == (uint)DriveInformations.CasePreservedNames) { driveInformations |= DriveInformations.CasePreservedNames; } if ((uiSysFlags & (uint)DriveInformations.UnicodeOnDisk) == (uint)DriveInformations.UnicodeOnDisk) { driveInformations |= DriveInformations.UnicodeOnDisk; } if ((uiSysFlags & (uint)DriveInformations.PersistentAcls) == (uint)DriveInformations.PersistentAcls) { driveInformations |= DriveInformations.PersistentAcls; } if ((uiSysFlags & (uint)DriveInformations.FileCompression) == (uint)DriveInformations.FileCompression) { driveInformations |= DriveInformations.FileCompression; } if ((uiSysFlags & (uint)DriveInformations.VolumeQuotas) == (uint)DriveInformations.VolumeQuotas) { driveInformations |= DriveInformations.VolumeQuotas; } if ((uiSysFlags & (uint)DriveInformations.SparseFiles) == (uint)DriveInformations.SparseFiles) { driveInformations |= DriveInformations.SparseFiles; } if ((uiSysFlags & (uint)DriveInformations.ReparsePoints) == (uint)DriveInformations.ReparsePoints) { driveInformations |= DriveInformations.ReparsePoints; } if ((uiSysFlags & (uint)DriveInformations.RemoteStorage) == (uint)DriveInformations.RemoteStorage) { driveInformations |= DriveInformations.RemoteStorage; } if ((uiSysFlags & (uint)DriveInformations.VolumeIsCompressed) == (uint)DriveInformations.VolumeIsCompressed) { driveInformations |= DriveInformations.VolumeIsCompressed; } if ((uiSysFlags & (uint)DriveInformations.SupportObjectsIds) == (uint)DriveInformations.SupportObjectsIds) { driveInformations |= DriveInformations.SupportObjectsIds; } if ((uiSysFlags & (uint)DriveInformations.SupportEncryption) == (uint)DriveInformations.SupportEncryption) { driveInformations |= DriveInformations.SupportEncryption; } if ((uiSysFlags & (uint)DriveInformations.NamedStreams) == (uint)DriveInformations.NamedStreams) { driveInformations |= DriveInformations.NamedStreams; } if ((uiSysFlags & (uint)DriveInformations.ReadOnlyVolume) == (uint)DriveInformations.ReadOnlyVolume) { driveInformations |= DriveInformations.ReadOnlyVolume; } } return(szDriveName); }