查文件夹大小之工具

来源:互联网 发布:java高并发编程 视频 编辑:程序博客网 时间:2024/06/06 13:15

使用递归计算各个文件夹大小

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Web;namespace WenJJ{ public partial class FMain : Form { public FMain() { InitializeComponent(); } public void DPrint(String Name, long Size, int Step ) { if (Step > mStepCtrl) { return; } String iO = "\r\n"; for (int i = 0; i < Step; i++) { iO += "\t"; } iO += Name; iO += ":"; iO += Size.ToString(); IOutPut.Text += iO; Console.WriteLine(iO); } public long GetDir(String iDirName, int Step) { long tsize = 0; string[] dirnames = Directory.GetDirectories(iDirName); foreach (string dname in dirnames) { tsize += GetDir(dname, Step+1); //IOutPut.Text += "\r\n"; } //获取该文件夹下面的所有文件名 string[] filenames = Directory.GetFiles(iDirName); foreach (string fname in filenames) { FileInfo fi = new FileInfo(fname); tsize += fi.Length; DPrint(fname, fi.Length, Step + 1); } DPrint(iDirName, tsize, Step); return tsize; } int mStepCtrl = 2; private void GetNow_Click(object sender, EventArgs e) { long tl = GetDir("c:/Users/Administrator/", 0); return; } }} 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Web;

namespace WenJJ
{
    public partial class FMain : Form
    {
        public FMain()
        {
            InitializeComponent();
        }

        public void DPrint(String Name, long Size, int Step )
        {
            if (Step > mStepCtrl)
            {
                return;
            }

            String iO = "\r\n";
            for (int i = 0; i < Step; i++)
            {
                iO += "\t";
            }
            iO += Name;
            iO += ":";
            iO += Size.ToString();
            IOutPut.Text += iO;
            Console.WriteLine(iO);
        }

        public long GetDir(String iDirName, int Step)
        {
            long tsize = 0;

            string[] dirnames = Directory.GetDirectories(iDirName);
            foreach (string dname in dirnames)
            {
                tsize += GetDir(dname, Step+1);
                //IOutPut.Text += "\r\n";
            }

            //获取该文件夹下面的所有文件名
            string[] filenames = Directory.GetFiles(iDirName);
            foreach (string fname in filenames)
            {
                FileInfo fi = new FileInfo(fname);
                tsize += fi.Length;

                DPrint(fname, fi.Length, Step + 1);
            }

            DPrint(iDirName, tsize, Step);

            return tsize;
        }

        int mStepCtrl = 2;
        private void GetNow_Click(object sender, EventArgs e)
        {
            long tl = GetDir("c:/Users/Administrator/", 0);
            return;
        }
    }
}

0 0