Узнать размера файла по условию

193
17 августа 2018, 17:20

Нужно в цикле определять размер файла, и если он меньше чем в условии то удалять его путь из коллекции

 string[] pathlog =
            {
                "\\Folders\\text.txt",
                "\\Folders\\text.txt",
                "\\Folders\\text.txt"
            };
  List<string> passion = new List<string>(pathlog);
for (int i = passion.Count - 1; i >= 0; i--)             
                    if (passion[i].Length <= 20480 * 1024)
                    passion.RemoveAt(i);

При умножении список файлов не выводится, при делении выводятся все файлы, что я делаю не верно?

Answer 1

Попробуйте так

var pathlog = new string[]
    {
        "\\Folders\\text.txt",
        "\\Folders\\text.txt",
        "\\Folders\\text.txt"
    };
var passion = pathlog
    .Where(x => File.Exists(x)) // выбираем только те файлы, что есть на диске
    .Where(x => new FileInfo(x).Length > 20480 * 1024) // фильтруем файлы по размеру
    .ToList();

Как сделать в цикле

List<string> passion = new List<string>(); // пустой!
for (int i = 0; i < pathlog.Length; i++)
{
    if (!File.Exists(pathlog[i])) continue;
    var info = new FileInfo(pathlog[i])
    if (info.Length > 20480 * 1024)
        passion.Add(pathlog[i]); // добавляем по условию в список 
}
READ ALSO
Удаление изображений

Удаление изображений

Как в WPF удалить фотки из кэша? Потому что потом я не могу их редактировать, удалятьЕсли я хоть раз их загружу в программу, то потом из программы...

169
строка подключения mysql ado.net

строка подключения mysql ado.net

вот тут и возникли проблемы, пробовал делать вот так:

156
Функциональные компоненты, которые могут входить в определение класса C#

Функциональные компоненты, которые могут входить в определение класса C#

В билете есть такой вопрос: "Назовите функциональные компоненты, которые могут входить в определение класса в контексте языка C#, поясните...

206
c# Как преобразовать число в шестнадцатеричный байт?

c# Как преобразовать число в шестнадцатеричный байт?

Есть к примеру число 2010, как из него получить байт 0x7da ? И именно байт, а не строчку

198