Как определить, какие диски есть в системе?

Всем привет! Глупое решение, но хочется написать свой файловый менеджер. Стоит вопрос, как определить какие диски подключены к системе, и как можно разграничить, например жесткие диски, оптические, или флешки?
  • Вопрос задан
  • 2390 просмотров
Пригласить эксперта
Ответы на вопрос 2
@OvLab
Так как OS в вопросе не указана, напишу как это делается в Windows.

GetLogicalDrives - возвращает 32 битное число, каждый установленный бит которого обозначает доступность в системе соответствующего диска: бит 0 - A, бит 1 - B, бит 2 - С и так далее.

GetDriveType(DiskName) - при передаче в функцию буквы диска возвращается его тип:

0 DRIVE_UNKNOWN
1 DRIVE_NO_ROOT_DIR
2 DRIVE_REMOVABLE (сменный)
3 DRIVE_FIXED
4 DRIVE_REMOTE (сетевой)
5 DRIVE_CDROM
6 DRIVE_RAMDISK

Например:
void main()
{
if (GetDriveType("F:")==DRIVE_CDROM)
cout << "CD" << endl;
}
Ответ написан
Комментировать
@AlexP11223
В Windows еще через WMI много чего легко получить можно. Win32_DiskDrive, например.
msdn.microsoft.com/en-us/library/windows/desktop/a...
https://github.com/MKisilyov/MoreReports/blob/mast... — немного примеров кода на C++ (инициализация и т.п. и внизу получение данных про диски).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы