Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить размер файла? [D7, Win2k, WinXP]


pavel_guzhanov ©   (2005-05-05 14:39:00) 

Здравствуйте!
Подскажите, как оперделить размер файла, зная путь к нему?


xShadow   (2005-05-05 17:28:00) [1]


> begin...end ©   (05.05.05 17:22) [6]

Было сказано к приведённому примеру :)


begin...end   (2005-05-05 17:22:00) [2]

> 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:07:00) [3]


> 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;


pavel_guzhanov   (2005-05-05 15:58:00) [4]

пасиба, работает!


Grell   (2005-05-05 15:08:00) [5]

...............
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);
...............


xShadow   (2005-05-05 15:01:00) [6]

FindFirst тоже можно


KilkennyCat   (2005-05-05 14:50:00) [7]

filesize


Наверх

Титульная страница Поиск, карта сайта Написать письмо