Найти все папки с определенными параметрами размера? - PullRequest
1 голос
/ 19 августа 2011

Я ищу хороший способ найти все папки с содержимым, скажем, 500 КБ или меньше.Я думаю, что это предполагает рекурсивный переход к самой низкой папке в иерархии, а затем «чтение», чтобы получить общий размер.Все идеи оценены (что-то в .NET Framework или PowerShell, если мне действительно нужно), спасибо.

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Это может помочь вам.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace GetDirectorySize
{
    class Program
    {
        static void Main(string[] args)
        {
            long maxFolderSizeInBytes = 20000000;

            foreach (var directory in Directory.GetDirectories(@"C:\Projects\Visual Studio 2010\"))
            {
                string[] a = Directory.GetFiles(directory, "*.*");
                long i = 0;
                foreach (string name in a)
                {
                    FileInfo info = new FileInfo(name);
                    i += info.Length;
                }
                if (i <= maxFolderSizeInBytes)
                { 
                    Console.WriteLine(directory);
                }
            }
            Console.ReadLine();
        }
    }
}
0 голосов
/ 19 августа 2011

См: Как лучше всего рассчитать размер каталога в .NET?

Существует также базовый пример на MSDN «Рассчитать размер каталога». http://msdn.microsoft.com/en-us/library/system.io.directory.aspx

...