Как определить размер файла?
Как определить размер файла?
Как определить размер файла? Для этого есть три способа. Первый - открыть файл и перейти в конец. Переход по файлу возвращает текущую позицию, а раз текущая позиция это конец, то это и будет размер: var f:HFILE; FileSize:Integer; begin // Открываем файл только для чтения (этого достаточно) f:=_lopen(PChar(FileName), OF_READ); // Получаем размер файла FileSize :=_lseek(f,0, FILE_END); //Закрываем файл _lclose(f); end; Второй способ - через поиск, который так же возвращает размер. var SearchRec:TSearchRec; Begin // Ищем файл if FindFirst(ExpandFileName(FileName),faAnyFile,SearchRec)=0 // Забираем размер FilrSize:=SearchRec.Size //Закрываем поиск FindClose(SearchRec); end; Третий способ - это получить размер файла напрямую через функцию GetFileSize. function GetFileSize( hFile: THandle; lpFileSizeHigh: Pointer) : DWORD; stdcall; В качестве первого параметра будет указатель на файл, а второй - указатель на число DWORD, куда засунут старший байт размера файла. Не пугайся, старший байт тебе врятли понадобиться, очень редко встречаются файлы больше 2 гига. Поэтому можно смело использовать в качестве второго параметра nil.