Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизКак определить размер файла? Найти похожие ветки
← →
pavel_guzhanov © (2005-05-05 14:39) [0]Здравствуйте!
Подскажите, как оперделить размер файла, зная путь к нему?
← →
KilkennyCat © (2005-05-05 14:50) [1]filesize
← →
xShadow © (2005-05-05 15:01) [2]FindFirst тоже можно
← →
Grell © (2005-05-05 15:08) [3]...............
var
F:hFile;
Size:DWORD;
s:PChar;
begin
F:=CreateFile(s,GENERIC_READ,0,NIL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
Size:=GetFileSize(F,nil);
...............
← →
pavel_guzhanov © (2005-05-05 15:58) [4]пасиба, работает!
← →
xShadow © (2005-05-05 17:07) [5]
> Grell © (05.05.05 15:08) [3]
Не на всех файлах отработает. Лимит в 4 гб.Function GetFileSize( const FileName: String ): Int64;
var S: TSearchRec;
Begin
FindFirst( FileName, faAnyFile, S );
Result := ( Int64( S.FindData.nFileSizeHigh ) * MAXDWORD ) +
Int64( S.FindData.nFileSizeLow );
FindClose( S );
end;
← →
begin...end © (2005-05-05 17:22) [6]> xShadow © (05.05.05 17:07) [5]
> Не на всех файлах отработает. Лимит в 4 гб.
Почему же? Если использовать ещё и второй параметр в GetFileSize, то лимит в 4 ГБ сразу же исчезает.
Например:var
BigSize: Int64;
H: Cardinal;
begin
H := CreateFile(...);
...
Int64Rec(BigSize).Lo := GetFileSize(H, @Int64Rec(BigSize).Hi);
...
end.
См. также: GetFileSizeEx (но она только в 2000 и выше).
← →
xShadow © (2005-05-05 17:28) [7]
> begin...end © (05.05.05 17:22) [6]
Было сказано к приведённому примеру :)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c