Как определить суммарный размер файлов в папке?

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
Можно ли как-то определить суммарный размер файлов в папке в рамках одного экшена, например через C# код?
 

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
83
Баллы
28
Не умею одним кубиком.

Первый кубик не уверен, как пишется, но второй — объединить элементы списка через плюс.
A третий — ява код сложение.
 

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
124
Баллы
43
Можно ли как-то определить суммарный размер файлов в папке в рамках одного экшена, например через C# код?
C#:
string[] a = Directory.GetFiles(project.Variables["dir"].Value, "*.*");
    long b = 0;
    foreach (string name in a)
    {
      // 3
      // Use FileInfo to get length of each file.
      FileInfo info = new FileInfo(name);
      b += info.Length;
    }
    // 4
    // Return total size
    return b;
Нихрена в C# не понимаю, но вот рабочий вариант по четвертой ссылке в гугле
 
  • Спасибо
Реакции: stranger07

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
C#:
string[] a = Directory.GetFiles(project.Variables["dir"].Value, "*.*");
    long b = 0;
    foreach (string name in a)
    {
      // 3
      // Use FileInfo to get length of each file.
      FileInfo info = new FileInfo(name);
      b += info.Length;
    }
    // 4
    // Return total size
    return b;
Нихрена в C# не понимаю, но вот рабочий вариант по четвертой ссылке в гугле
Спасибо, но этот вариант правильно определяет размер, только в том случае, если в папке не вложенных папок.
Если есть вложенные папки, то он не учитывает находящиеся в них файлы.
 

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
124
Баллы
43
Спасибо, но этот вариант правильно определяет размер, только в том случае, если в папке не вложенных папок.
Если есть вложенные папки, то он не учитывает находящиеся в них файлы.
C#:
var files = Directory.GetFiles(project.Variables["dir"].Value, "*.*", SearchOption.AllDirectories);

long totalSize = 0;
foreach (string name in files)
{
   var info = new FileInfo(name);
   totalSize += info.Length;
}
return totalSize;
 
  • Спасибо
Реакции: orka13, doc и stranger07

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
Спасибо! Теперь работает и с подкаталогами.
 

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93
Можно ли как-то определить суммарный размер файлов в папке в рамках одного экшена, например через C# код?
C#:
return new DirectoryInfo(@"C:\Users\Sleep\Desktop\60k car").EnumerateFiles("*", SearchOption.AllDirectories).Sum(x => x.Length)/1024 + "Кб."; // Если нужно в Мб - то еще разделить на 1024;
 
  • Спасибо
Реакции: orka13

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)