Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизОбщий объем файлов Найти похожие ветки
← →
13 (2006-01-07 19:47) [0]Использую FindFirst findnext FindClose для поиска файлов результат вывожу в Listview. А как подсчитать общий объем файлов найденных и выведенных в ListView
← →
Sergey2005 (2006-01-07 19:57) [1]Можно сразу при вводе в Listview в одной переменной складывать размер, тоесть файл 1 + 2 +3...
i:=i+filesize
← →
Virgo_Style © (2006-01-07 19:57) [2]TSearchRec.Size, операция суммирования (+)
← →
13 (2006-01-07 20:01) [3]Можно сразу при вводе в Listview в одной переменной складывать размер, тоесть файл 1 + 2 +3...
i:=i+filesize
получается только размер последнего файла
← →
13 (2006-01-07 20:03) [4]Если не сложно покажите на примере
procedure ffind(cat:string); //каталог, откуда начать поиск
var sea:TSearchRec;
res:integer; //результат поиска (0 или нет)
begin
res:=FindFirst(cat+"*.*",faAnyFile,sea); //ищем первый файл
res:=findNext(sea);//ищем следующий файл
While res=0 do
begin
if (Sea.Attr=faDirectory) and ((Sea.Name=".")or(Sea.Name="..")) then//чтобы не было файлов . и..
begin
Res:=FindNext(sea);
Continue;//продолжаем цикл
end;
if (Sea.Attr=faDirectory) then//если нашли директорию, то ищем файлы в ней
begin
Ffind(cat+Sea.Name+"\");//рекурсивно вызываем нашу процедуру
Res:=FindNext(Sea);//ищем след. файл
Continue;//продолжаем цикл
end;
form1.ListBox1.Items.Add(Sea.Name);//добавляем в Listbox:Tlistbox имя файла
Res:=FindNext(Sea);//ищем след. файл
end;
FindClose(Sea);//освобождаем пересенную поиска
end;
← →
Sergey2005 (2006-01-07 20:27) [5]При нахождении файла, определяеш его раэмер к примеру в result, ну а потом приплюсовываеш к переменной filesize:
filesize:=filesize+result
filesize первоночально в 0 должно быть, если процедура запускается не один раз, то тогда filesize должна быть глобальной, чтоб не потерять общий результат.
← →
Virgo_Style © (2006-01-07 20:45) [6]Sergey2005 (07.01.06 20:27) [5]
тогда filesize должна быть глобальной
или вместо процедуры сделать функцию, возвращающую общий размер найденных файлов, imho так красивше :-)
← →
13 (2006-01-07 20:46) [7]А пример можно?
← →
Sergey2005 (2006-01-07 20:51) [8]Привёл бы пример, да ток щас не помню как там размер файла вычислить, а лесть в справку нет желания.
Virgo_Style © (07.01.06 20:45) [6]
*или вместо процедуры сделать функцию, возвращающую общий размер найденных файлов, imho так красивше :-)*
С функцией оно понятно лудше, просто я привёл пример.
← →
Virgo_Style © (2006-01-07 21:13) [9]Sergey2005 (07.01.06 20:51) [8]
как там размер файла вычислить
Есть соответствующее поле у TSearchRec, если, конечно, не нужно реально занятое место на диске, там все гораздо интересней.
← →
UnKnow1234 (2006-01-07 22:29) [10]
> А пример можно?
procedure TForm1.Button1Click(Sender: TObject);
Var F:TSearchRec;
i:Integer;
sum:Extended;
begin
sum:=0;
i:=faAnyFile;
If FindFirst("c:\Video\Movies\*.*",i,F)<>0 Then Exit;
While FindNext(F)=0 Do
If (F.Attr and faDirectory)=0 Then
sum:=sum+(F.Size);
Label1.Caption:=FloatToStr(sum)+" Byte";
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c