Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизРазмер любого файла Найти похожие ветки
← →
dprimakov (2004-07-29 19:43) [0]Здравствуйте! Извините за ламерский вопрос, но я не могу узнать размер файла(любого), есть функция GetFileSize, но как ею пользоваться никак в толк не возьму.
← →
Palladin © (2004-07-29 19:45) [1]А для не любого значит можешь?
← →
_student (2004-07-29 19:46) [2]FileStream может возвращать размер
← →
Fay © (2004-07-29 20:49) [3]GetFileSize/GetFileSizeEx используется в тех случаях, когда есть дескриптор файла, полученый от CreateFile. Второй параметр - адрес переменной (можно передать nil), куда складывать старшую часть значания, т.к. файл может быть больше 4Gb.
Пример.var
h : Cardinal; // Дескриптор файла
sz : Cardinal; // Размер файла
begin
h := CreateFile("c:\boot.ini", GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if h = INVALID_HANDLE_VALUE {Cardinal(-1)} then RaiseLastOSError;
sz := GetFileSize(h, nil);
....
CloseHandle(h);
← →
Almaz © (2004-07-29 20:58) [4]В общем случае (в т.ч. когда файл > 4 Gb) функция будет выглядеть примерно так:
function FileSize(FileName: String): Int64;
var
FileHandle: Cardinal;
begin
Result := -1;
FileHandle := CreateFile(PChar(FileName), GENERIC_READ, 0, nil,
OPEN_EXISTING, 0, 0);
if FileHandle <> INVALID_HANDLE_VALUE then
begin
LARGE_INTEGER(Result).LowPart := GetFileSize(FileHandle,
@LARGE_INTEGER(Result).HighPart);
if (LARGE_INTEGER(Result).LowPart = $FFFFFFFF) and
(GetLastError <> NO_ERROR) then Result := -1;
CloseHandle(FileHandle);
end;
end;
Удачи.
← →
Fay © (2004-07-29 21:02) [5]2Almaz © (29.07.04 20:58) [4]
Раз уж пошла такая пьянка, то можно покурить GetFileSizeEx.
← →
Almaz © (2004-07-29 21:10) [6]
> Fay © (29.07.04 21:02) [5]
> 2Almaz © (29.07.04 20:58) [4]
>
> Раз уж пошла такая пьянка, то можно покурить GetFileSizeEx.
Покурить можно, но от этого GetFileSizeEx в Win9x не появится, ибо он там не поддерживается, а автора вопроса, как видно из заголовка, интересует именно Win9x.
Удачи.
← →
Fay © (2004-07-29 21:29) [7]2Almaz © (29.07.04 21:10) [6]
Точно, я и забыл 8(. Каюсь.
← →
panov © (2004-07-30 09:19) [8]FindFirst-->TSearchRec
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c