Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 07.10.2019, 19:01   #1
Alex711
Форумчанин
 
Регистрация: 21.09.2018
Сообщений: 61
Репутация: 10
По умолчанию Размер файлов

Здравствуйте, подскажите пожалуйста, как получит размер файлов, пути к которым добавлены в ListBox, пытаюсь так:

Код:
function FileSize(fileName : wideString) : Int64;
 var
   sr : TSearchRec;
 begin
   if FindFirst(fileName, faAnyFile, sr ) = 0 then
      result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
   else
      result := -1;
 
   FindClose(sr) ;
 end;

procedure TForm1.SizeF;
var i: integer;
begin
 for i:=0 to ListBox1.Count - 1 do
     Label2.Caption := inttostr(FileSize(ListBox1.Items[i]));
end;
Но получаю размер одного файла. Как получит размер всех файлов?
Alex711 вне форума   Ответить с цитированием
Старый 07.10.2019, 19:05   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,872
Репутация: 2668
По умолчанию

Вы все размеры записываете в ОДНУ переменную. Вы ожидаете, что они там сами сгрупируются, притрутся бочками и постоят?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 07.10.2019, 19:08   #3
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,987
Репутация: 6725
По умолчанию

Можно в memo результат отобразить. В Label2.Caption тоже можно, но не так же, затирая, а накапливая, добавляя строку справа
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 07.10.2019, 19:51   #4
Alex711
Форумчанин
 
Регистрация: 21.09.2018
Сообщений: 61
Репутация: 10
По умолчанию

Вывел в ListBox2:

Код:
ListBox2.Items.Add(FloatToStr(FileSize(ListBox1.Items[i])));
В ListBox2 вижу:
- если в ListBox1 2 файла, в ListBox2 три значения (размер одного файла повторяется)
- если в ListBox1 3 файла, в ListBox2 шесть значений (размер первого файла повторяется 3 раза, второго 2 раза, третьего 1 раз)
Alex711 вне форума   Ответить с цитированием
Старый 07.10.2019, 20:50   #5
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,942
Репутация: 2059
По умолчанию

Так очистить его надо.
Код:
procedure TForm1.SizeF;
var i: integer;
begin
  ListBox2.Clear;
  for i:=0 to ListBox1.Count - 1 do
     ListBox2.Items.Add(IntToStr(FileSize(ListBox1.Items[i])));
end;
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума   Ответить с цитированием
Старый 07.10.2019, 22:27   #6
Alex711
Форумчанин
 
Регистрация: 21.09.2018
Сообщений: 61
Репутация: 10
По умолчанию

Вес файлов в ListBox2, подскажите пожалуйста ещё как сложить (+) значения айтемов ListBox2?
Alex711 вне форума   Ответить с цитированием
Старый 08.10.2019, 02:45   #7
northener
ПШП
Профессионал
 
Регистрация: 15.07.2013
Сообщений: 1,576
Репутация: 574
По умолчанию

А нафига вам вообще ListBox2?
Сделайте так, например
Код:
function TForm1.SizeF: Int64;
begin
  Result:=0;  
  for i:=0 to ListBox1.Count - 1 do
    Result:=Result+FileSize(ListBox1.Items[i]);
end;
...
Label2.Caption:=IntToStr(SizeF);
northener вне форума   Ответить с цитированием
Старый 08.10.2019, 15:46   #8
Alex711
Форумчанин
 
Регистрация: 21.09.2018
Сообщений: 61
Репутация: 10
По умолчанию

Спасибо всем за ответы!
Alex711 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
неправильно определяется размер больших файлов BLACK_RAIN Общие вопросы Delphi 9 17.04.2019 14:10
Почему разный размер файлов при компиляции? R_G Win Api 4 25.03.2016 13:17
Размер файлов Михаил Юрьевич Общие вопросы Delphi 6 10.08.2015 12:24
Почему уменьшился максимальный размер загружаемых файлов? Вадим Мошев О форуме и сайтах клуба 1 03.08.2013 22:51
Удаление файлов из папки по условию (размер) Vasьka Microsoft Office Excel 3 10.07.2013 21:38


09:52.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.