![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с файлами [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