Форум: "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