Текущий архив: 2005.12.11;
Скачать: CL | DM;
Внизразмер длинного файла Найти похожие ветки
← →
Alex_andr (2005-11-24 21:00) [0]Как получить размер файла если его длинна 5-10 Гбайт? Функция FileSize имеет тип LongInt т.е. не более 2147483647 Байт.
Может чего не так понимаю, подскажите пожалуйста.
← →
qp (2005-11-24 21:00) [1]GetFileSize
← →
Anatoly Podgoretsky © (2005-11-24 21:20) [2]А надо ли использовать файлы Паскаля?
← →
Alex_andr (2005-11-24 22:53) [3]Спасибо, но мне это не помогло.
Я понятия не имею как обращаться с API-функциями в моих книгах они только перечислены и всё. Может кто показать пример или адресок, где это описано.
← →
Zeqfreed © (2005-11-24 23:18) [4]Alex_andr (24.11.05 22:53) [3]
А как обращаться с не API-функциями ты знаешь?
← →
Джо © (2005-11-24 23:36) [5]
> [3] Alex_andr (24.11.05 22:53)
Нужно использовать GetFileSizeEx, именно эта функция позволяет получить 64-битное значение.
← →
Джо © (2005-11-24 23:41) [6]Если же эта функция не подходит, а не подходить она может по 2 причинам:
1. Ей нужно передавать хэндл уже открытого файла, что не всегда желательно и
2. Она существует, начиная с Win2K.
тогда можно получить желаемое использовав функцию FindFirst. С ее помощью можно получить структуру WIN32_FIND_DATA, которая, в свою очередь, содержит поля с 2-мя двойными словами размера файла. Т.е, сделать что-то вроде:
function MakeInt64 (H,L: DWord): Int64;
begin
Result := H or L shl 32;
end;
function GetLongFileSize (AFileName: string): Int64;
var
SR: TSearchRec;
begin
if FindFirst(AFileName,faAnyFile,SR) = 0 then
begin
Result := MakeInt64(SR.FindData.nFileSizeHigh,
SR.FindData.nFileSizeLow);
FindClose (SR);
end
else
Result := -1;
end;
← →
Alex_andr (2005-11-25 00:08) [7]Большое спасибо всё понял!
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.04 c