Описание функции
DriveGetNumber
Получить номер диска
DriveGetNumber(DriveLetter$)
Параметры
DriveLetter$ | Диск, например C: |
Возвращаемое значение
Успех: | Возвращает номер диска, например 0:1, где 0 - физический диск, 1 - логический диск |
Примечания
Используйте GetDrives().Пример
EnableExplicit
;Получение номера диска и раздела, из буквы раздела
Procedure.s DriveGetNumber(DriveLetter$)
Protected DriveInfo.STORAGE_DEVICE_NUMBER, Nul , Ret$="?:?", hDevice
hDevice = CreateFile_("\\.\" + DriveLetter$, 0, 0, 0, #OPEN_EXISTING, #FILE_ATTRIBUTE_NORMAL, #NUL)
If hDevice <> #INVALID_HANDLE_VALUE
If DeviceIoControl_(hDevice,#IOCTL_STORAGE_GET_DEVICE_NUMBER, 0, 0, DriveInfo, SizeOf(STORAGE_DEVICE_NUMBER), @Nul, #NUL)
Ret$=Str(DriveInfo\DeviceNumber) + ":" + Str(DriveInfo\PartitionNumber)
EndIf
CloseHandle_(hDevice)
EndIf
ProcedureReturn Ret$
EndProcedure
Debug DriveGetNumber("C:")