Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

Получение буквы диска по его номеру

Здравствуйте. У меня такая проблема. Есть приложение на С, которое форматирует диск, номер которого я ввожу.
#include #include #include using namespace std;
void main() { WORD DriveNumber; const int SHFMT_OPT_DEFAULT = 0xFFFF; cout << "Please write the number of tom, which you want to formation (the value of tom number represents a letter drive starting at 0 for the A: drive, 1 for the B: drive, and so on through the alphabet): "; cin >> DriveNumber;
SHFormatDrive(0, DriveNumber, SHFMT_OPT_DEFAULT, 0);
}
Все прекрасно, но мне хотелось бы сделать проверку, которая состояла бы в том, есть ли на компьютере том, номер которого я ввожу, если нет выдавало бы ошибку. Не знаете как это сделать?


Ответ

Вам нужна функция GetLogicalDrives. Она выдаёт битовую маску, соответствующую доступным дискам.
DWORD drives = GetLogicalDrives(); if (drives == 0) { // ошибка? проверим GetLastError() и возможно выйдем } if (drives & (1 << DriveNumber) == 0) { // такого диска нету
Не забудьте подключить и проверить ошибку через GetLastError()

Комментариев нет:

Отправить комментарий