Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

Список разделов на жестком диске....   Найти похожие ветки 

 
-= Demon =-   (2003-05-26 18:00) [0]

Всем привет!
Вот такая бага объявилась: нужно получить список всех разделов на жестком диске.
1) получаем список всех дисков
function GetLocalDriveList: TStringList;
var
i: integer;
LogDrives: set of 0..25;
begin
Result:=TStringList.Create;
integer(LogDrives) := GetLogicalDrives;
for i:=0 to 25 do
if (i in LogDrives) then
Result.Add(chr(i + 65) + ":");
end;
//---------------------------------------------------------

2) Выбераем только разделы жесткого диска (DRIVE_FIXED)
function GeHDDList: TStringList;
var
i: integer;
begin
Result:=TStringList.Create;
Result:=GetLocalDriveList;
i:=Result.Count-1;
while i >= 0 do
begin
if GetDriveType(PChar(Result[i])) <> DRIVE_FIXED then Result.Delete(i);
dec(i);
end;
end;
//------------------------------------------------------------

Проблема в том, что работает где как: под 2000-й - на ура, под 98-й может на некоторые диски сказать, что они отсутствуют (т.е. не только не определить их как "жесткие", но и сказать, будто их вообще нет). В чем может быть дело?


 
Дмитрий Белькевич   (2003-05-27 01:06) [1]

Для cdrom:

s := GetCDROM;

function GetCDROM: string;
var
DriveArray: array[1..26] of Char;
I: integer;
begin
result := "";
DriveArray := "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for I := 1 to 26 do
if GetDriveType(PChar(DriveArray[I] + ":\")) = DRIVE_CDROM then
Result := Result + DriveArray[I];
end;

Для жестки аналогично, только вместо DRIVE_CDROM DRIVE_FIXED. В S - список дисков.


 
-= Demon =-   (2003-05-27 09:29) [2]

> Дмитрий Белькевич

Ну, вообще-то это не решение проблемы, т.к. будет то же самое. Ведь ты просто проверяешь здесь весь буквенный набор, который может быть именем диска, а я сначала получал список из реально существующих дисков.
Проблема в том, что функция GetDriveType не всегда верно определяет тип диска, т.ч. на раздел HDD говорит что он вообще отсутствует...


 
VMcL   (2003-05-27 10:13) [3]

>-= Demon =- (27.05.03 09:29)
>а раздел HDD говорит что он вообще отсутствует...

Тип раздела: FAT32, NTFS, ...?


 
Дмитрий Белькевич   (2003-05-27 13:18) [4]

>-= Demon =- (27.05.03 09:29)
>а раздел HDD говорит что он вообще отсутствует...

8() это как это? Его видно через какую оболочку? Типа фара? Если да - то чудес не бывает - фар именно так и работает.
Если нет - так разберись, почему у тебя том система не подключает, а потом что-то програмируй.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.012 c
14-100932
copyr25
2003-07-11 22:01
2003.07.31
Кто, по Вашему, будет Президентом в России? В 2008-м году?


1-100791
ramdy
2003-07-17 10:17
2003.07.31
stringgrid focused cell


14-100897
R@nger
2003-07-14 13:58
2003.07.31
UUE Decode


1-100683
LKJJ
2003-07-18 11:36
2003.07.31
Функий преобразования Extended


14-100979
Delirium
2003-07-14 13:27
2003.07.31
На borland.com появилась триальная версия C# Builder





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский