Текущий архив: 2006.04.23;
Скачать: CL | DM;
ВнизМетка диска Найти похожие ветки
← →
veb (2006-04-09 21:20) [0]Здравствуйте. Как получить метку диска и второе, что здесь не правильно?
function GetVolumeLabel(Drive: Char): String;
var
SR: TSearchRec;
SearchString: String[7];
begin
SearchString := Drive + ":\*.*";
if FindFirst(SearchString, faVolumeID, SR) = 0 then
Result := SR.Name;
FindClose(SR);
end;
выдает название первого найденного файла, а по идее должно давать метку диска.
← →
Anatoly Podgoretsky © (2006-04-09 21:22) [1]FindFirst + FindNext пока не будет найдена именно метка
← →
AlexeyT © (2006-04-09 21:26) [2]Вот:
var
dir: string;
buf1, buf2: array[0..50] of char;
nNameLen: DWORD;
begin
dir:= ch+":\";
FillChar(buf1, SizeOf(buf1), 0);
FillChar(buf2, SizeOf(buf2), 0);
if GetVolumeInformation(PChar(dir), @buf1, SizeOf(buf1),
@fSerial, nNameLen, fFlags, @buf2, SizeOf(buf2)) then
begin
fLabel:= buf1; //метка тома
fSystem:= buf2; //файловая система
end;
← →
Palladin © (2006-04-09 21:34) [3]
> Anatoly Podgoretsky ©
только пытался взять, самое интересное, полная фигня, не находит оно это...
← →
veb (2006-04-09 21:41) [4]to Alexey
значение fFlags чему выставлять? и какой модуль требуется подключить?
to Anatoliy
не понял, а что тогда находит при первом вызове FindFirst? ведь условие в If выполняется? Следовательно, найдена именно метка диска, а выдает имя файла.
← →
begin...end © (2006-04-09 22:19) [5]> veb (09.04.06 21:41) [4]
fFlags — это выходной параметр. Поэтому инициализировать его не нужно. К тому же, в данном случае (для получения метки тома) он не нужен вовсе:
var
VL: array [0..MAX_PATH] of Char;
begin
if GetVolumeInformation("C:\", VL, sizeof(VL), nil, Cardinal(nil^), Cardinal(nil^), nil, 0) then
ShowMessage(VL)
end
Страницы: 1 вся ветка
Текущий архив: 2006.04.23;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.013 c