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

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

Как получить размер файла? Ессно, винапишной функцией GetFileSize [D5, Win95/98, Win2k]


Диман ©   (2001-11-19 10:06:00) 

Указанная функция почему-то возвращает всегда либо 0 либо 65535 (возвращает в WORD, если DWORD - тогда 4 гига - это вроде как размер файла такой!). Ясно что глюк. Залез в СДК там писано такое - в СЛУЧАЕ ОШИБКИ возвращается максимальное значение. Пробовал всяко разно вызывать - результат один. Подскажите кто знает!


Диман   (2001-11-20 07:14:00) [1]

Ура! Заработала! Огромное спасибо что не оставили в беде.


Polevi   (2001-11-19 11:36:00) [2]

var
FileSize,FileSizeHigh:Cardinal;
fHandle:THandle;
begin
fHandle:=CreateFile(PChar(FileName),GENERIC_READ or GENERIC_WRITE,
0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if fHandle<>INVALID_HANDLE_VALUE then
FileSize:=GetFileSize(fHandle,@FileSizeHigh);


paul_shmakov   (2001-11-19 11:17:00) [3]

2 Диман:
покажи, как вызываешь (код, включая открытие файла)


wHammer   (2001-11-19 11:06:00) [4]

Можно и без WinApi, с помощью потоков, например так:

var
In : TFileStream;
SizeIn : cardinal;
begin
In := TFileStream.Create(пишу по памяти, посмотри в хелпе пар-ры);
SizeIn := In.что-то вроде Size
In.Free;
end;


Наверх

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