Приложение DiskInfo
Если ваше приложение просто открывает файлы или создает новые, возможно, для выбора файлов вам будет достаточно использовать стандартные диалоговые панели, которые мы создавали в предыдущем приложении. Однако во многих случаях вам необходимо предоставить пользователю детальную информацию о дисковых устройствах, такую, например, как тип файловой системы, общий объем диска, размер свободного пространства на диске, а также тип диска (локальный, сетевой, со сменным или несменным носителем данных, устройство чтения CD-ROM и так далее).
В этой главе мы приведем исходные тексты приложения DiskInfo, которое получает и отображает подробную информацию о всех дисковых устройствах, имеющихся в системе, как локальных, так и удаленных (сетевых). Информация отображается в табличном виде с помощью органа управления List View, который мы подробно описали в 22 томе “Библиотеки системного программиста”, посвященному операционной системе Microsoft Windows 95.
Внешний вид главного окна приложения DiskInfo, запущенного в одном из режимов отображения, показан на рис. 1.6.
![](image/prilozhenie-diskinfo_1.jpg)
Рис. 1.6. Просмотр информации о дисках в табличном виде
В столбце Drive отображаются пиктограммы и названия дисковых устройств, имеющихся в системе. Для каждого типа устройства используется своя пиктограмма.
В столбце Volume name для каждого устройства располагается метка тома (если она есть). В столбце File system мы отображаем имя файловой системы.
Так как максимальная длина имени файлов и каталогов разная для различных файловых систем, то в столбце File name length мы отображаем этй длину для каждого дискового устройства.
В столбцах Total Space и Free Space выводится, соответственно, емкость диска в байтах и размер свободного пространства на диске (также в байтах).
Заметим, что при первом запуске приложение DiskInfo не пытается определить параметры для устройств со сменными носителями данных (устройства НГМД, устройства чтения CD-ROM, магнитооптические накопители и так далее). Это связано с тем, что при попытке определить параметры устройства операционная система Microsoft Windows NT выполняет обращение к соответствующему накопителю. В том случае, если в накопителе нет носителя данных, на экране появится предупреждающее сообщение.
Тем не менее, наше приложение может определить параметры устройств со сменными носителями данных. Для этого вы должны вставить носитель (дискету, компакт-диск и так далее) в устройство, а затем сделать двойной щелчок левой клавишей мыши по пиктограмме устройства. После этого соответствующая строка таблицы будет заполнена, как это показано на рис.1.7.
![](image/prilozhenie-diskinfo_2.jpg)
Рис. 1.7. Полностью заполненная таблица параметров дисковых устройств
Кроме того, после двойного щелчка по пиктограмме любого дискового устройства на экране появляется диалоговая панель Logical Drive Information, в которой отображается имя устройства, имя файловой системы, серийный номер, а также системные флаги (рис. 1.8 - 1.11). Системные флаги мы описали в последней главе предыдущего тома “Библиотеки системного программиста”.
![](image/prilozhenie-diskinfo_1.gif)
Рис. 1.8. Просмотр дополнительной информации о диске FAT
![](image/prilozhenie-diskinfo_2.gif)
Рис. 1.9. Просмотр дополнительной информации о диске NTFS
![](image/prilozhenie-diskinfo_3.gif)
Рис. 1.10. Просмотр дополнительной информации о диске HPFS
![](image/prilozhenie-diskinfo_4.gif)
Рис. 1.11. Просмотр дополнительной информации о диске CDFS
С помощью меню Options, показанного на рис. 1.12, вы можете изменить режим отображения списка дисковых устройств.
![](image/prilozhenie-diskinfo_5.gif)
Рис. 1.12. Меню Options, предназначенное для изменения режима отображения списка дисковых устройств
Если выбрать из меню Options строку Icon view, внешний вид главного окна приложения изменится. Этот список будет отображаться в виде набора пиктограмм стандартного размера с подписью (рис. 1.13).
![](image/prilozhenie-diskinfo_6.gif)
Рис. 1.13. Просмотр дисковых устройств в виде пиктограмм стандартного размера
Если же из этого меню выбрать строку Small icon view, для отображения списка устройств будут использованы маленькие пиктограммы (рис. 1.14).
![](image/prilozhenie-diskinfo_7.gif)
Рис. 1.14. Просмотр дисковых устройств в виде пиктограмм маленького размера
Есть и еще один вариант, показанный на рис. 1.15. Он используется при выборе из меню Options строки List View.
![](image/prilozhenie-diskinfo_8.gif)
Рис. 1.15. Просмотр дисковых устройств в виде списка
Если же из меню Options выбрать строку Report view, список дисковых устройств будет отображаться в виде таблицы, как это было показано на рис. 1.6 и 1.7.
Приложение DiskInfo может работать и в среде операционной системы Microsoft Windows 95 (рис. 1.16).
![](image/image021.jpg)
Рис. 1.16. Просмотр информации о дисковых устройствах в среде операционной системы Microsoft Windows 95
Компьютер, на котором была запущена программа в этом случае, был оборудован 3,5 дюймовым НГМД (устройство A:), 5,25 дюймовым НГМД (устройство B:), обычным жестким диском (устройство C:), магнитооптическим накопителем MaxOptix с емкостью 1,3 Гбайт (устройство D:), и устройством чтения CD-ROM (устройство E:).
Кроме того, этот компьютер был подключен к сети, в которой есть серверы на базе операционных систем Microsoft Windows NT Server и Novell NetWare. Устройства F: и G: отображаются на сетевые тома сервера Microsoft Windows NT Server, а устройства S:, T: и U: - на сетевые тома сервера Novell NetWare.
Заметим, что в отличие от сервера Microsoft Windows NT Server, сервер Novell NetWare не был настроен таким образом, чтобы можно было работать с длинными именами файлов и каталогов.