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