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

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

Работа с файлами [D7]


Zeus ©   (2004-12-27 11:27:00) 

Мастера, подскажите как определить размер файла в байтах, его полный путь известен. Делаю FileSize(), он неправильно выдает. А еще тогда как получить количество файлов в папке?


Fay   (2004-12-27 12:59:00) [1]

>> result:=ts.FindData.nFileSizeHigh*4294967296+ts.FindData.nFileSizeLow;

Жестоко 8)


Anatoly Podgoretsky   (2004-12-27 11:47:00) [2]

Fay ©   (27.12.04 11:33) [4]
Для того чтобы не считать за файлы папки по второму вопросу.


sniknik   (2004-12-27 11:46:00) [3]

на самом деле FileSize правильно выдает, это вы не понимаете результат. ;о))

оно выдает не размер, а количетво записей... разница(!) и если размер записи неопределен, и файл нетипизирован, то по умолчанию ее размер 128байт.


Poirot   (2004-12-27 11:40:00) [4]

[4]
Ну просто not faDirectory не катит:)))


Bork   (2004-12-27 11:39:00) [5]

>faAnyFile-faDirectory-faVolumeID
>Это зачем?


можно просто faAnyFile


Bork   (2004-12-27 11:36:00) [6]

>подскажите как определить размер файла в байтах

function getfilesize(filename:string):int64;
var
ts:TSearchRec;
begin
if FindFirst(FileName, faAnyFile, ts)=0 then  begin
result:=ts.FindData.nFileSizeHigh*4294967296+ts.FindData.nFileSizeLow;
Findclose(ts);  
end;
end;


Fay   (2004-12-27 11:33:00) [7]

2 Bork   (27.12.04 11:30) [2]
>> ,faAnyFile-faDirectory-faVolumeID
Это зачем?


Алхимик   (2004-12-27 11:31:00) [8]


> Делаю FileSize(), он неправильно выдает.

Откуда такая уверенность?

> А еще тогда как получить количество файлов в папке?

FindFirst, FindNext


Bork   (2004-12-27 11:30:00) [9]

>как получить количество файлов в папке

Function GetFileCount(Dir:string):integer;
var fs:TSearchRec;
begin
 Result:=0;
 if FindFirst(Dir+'\*.*',faAnyFile-faDirectory-faVolumeID, fs)=0 then
   repeat
     inc(Result);
   until FindNext(fs)<>0;
 FindClose(fs);
end;


Fay   (2004-12-27 11:29:00) [10]

FindFirstFile/FindNextFile/Windows.FindClose


Наверх

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