Перечисление всех доступных букв дисков в Windows

В подобных случаях объясни свой код утке! (Нет, я не шучу, это известно как отладка резиновой утки )

Пользователь вводит 2 как количество чисел, которое он хочет вставить.

Цикл будет повторяться 2 раза и запрашивать у пользователя число.

Пользователь вводит 1 в качестве первого числа.

1 нечетно, поэтому он перемещается в arrayOdd, он также добавляется в sumOdd, то есть 1.

Пользователь вводит 3 в качестве второго числа. Как это ни странно, он также попадет в arrayOdd. Внутренний цикл запускается снова, перебирает arrayOdd, берет первый элемент (1) и добавляет его в sumOdd (!), Который теперь равен 2, затем он берет второй элемент (3) и добавляет это к sumOdd, sumOdd равно 5.

Но подождите ... сумма 1 и 3 равна 4, а не 5. Суммирование всех чисел sumOdd и sumEven в цикле кажется ошибкой.

 for (var x = 0; x < arrayOdd.length; x++) {
  sumOdd += arrayOdd[x];
}

Это должно быть:

 sumOdd += /* left as an exercise */;
15
задан sharkin 13 November 2008 в 08:38
поделиться

3 ответа

:: GetLogicalDrives () возвраты список доступных (чтение: используемый), управляет как биты в маске. Это должно включать подключенные сетевые диски. Таким образом можно просто обойти биты для нахождения битов, которые являются нулем, означая, что никакой диск не присутствует. Если в сомнении, можно всегда звонить :: GetDriveType () с буквой диска + ":\" (":\\" в коде C, или _T(":\\") в осведомленной о Unicode терминологии, конечно), и это должно возвратиться DRIVE_UNKNOWN или DRIVE_NO_ROOT_DIR, если диск доступен.

14
ответ дан 1 December 2019 в 02:38
поделиться

GetLogicalDriveStrings может получить Вас просто список в настоящее время используемых букв дисков.

GetVolumeInformation может использоваться для получения большей информации об определенном диске.

6
ответ дан 1 December 2019 в 02:38
поделиться

Функция GetLogicalDriveStrings является хорошей начальной точкой.

3
ответ дан 1 December 2019 в 02:38
поделиться
Другие вопросы по тегам:

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