Здравствуйте. У меня такая проблема. Есть приложение на С, которое форматирует диск, номер которого я ввожу.
#include
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)
{
// такого диска нету
Не забудьте подключить
Комментариев нет:
Отправить комментарий