加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在C#中获取特定文件夹的总大小?

发布时间:2020-12-16 07:06:07 所属栏目:asp.Net 来源:网络整理
导读:我正在创建一个应用程序,我给用户提供了一些内存空间,我想要的 计算他在文件夹中使用的总空间,并向他/她显示所使用的总空间和可以使用的总剩余空间. 如何计算整个文件夹的大小,包括c#中特定文件夹的所有文件. 解决方法 您可以使用以下函数来计算特定文件夹的
我正在创建一个应用程序,我给用户提供了一些内存空间,我想要的
计算他在文件夹中使用的总空间,并向他/她显示所使用的总空间和可以使用的总剩余空间.
如何计算整个文件夹的大小,包括c#中特定文件夹的所有文件.

解决方法

您可以使用以下函数来计算特定文件夹的大小.

资料来源:https://askgif.com/blog/144/how-can-i-get-the-total-size-of-a-particular-folder-in-c/

static String GetDriveSize(String ParticularFolder,String drive)
    {
        String size = "";
        long MaxSpace = 10485760;
        String rootfoldersize = @"~/userspace/" + ParticularFolder+ "/";
        long totalbytes = 0;
        long percentageusage = 0;

        totalbytes = GetFolderSize(System.Web.HttpContext.Current.Server.MapPath(rootfoldersize) + "" + drive + "/");
        percentageusage = (totalbytes * 100) / MaxSpace;
        size = BytesToString(totalbytes);

        return size;
    }

static long GetFolderSize(string s)
    {
        string[] fileNames = Directory.GetFiles(s,"*.*");
        long size = 0;

        // Calculate total size by looping through files in the folder and totalling their sizes
        foreach (string name in fileNames)
        {
            // length of each file.
            FileInfo details = new FileInfo(name);
            size += details.Length;
        }
        return size;
    }

static String BytesToString(long byteCount)
    {
        string[] suf = { "B","KB","MB","GB","TB","PB","EB" }; //Longs run out around EB
        if (byteCount == 0)
            return "0" + suf[0];
        long bytes = Math.Abs(byteCount);
        int place = Convert.ToInt32(Math.Floor(Math.Log(bytes,1024)));
        double num = Math.Round(bytes / Math.Pow(1024,place),1);
        return (Math.Sign(byteCount) * num).ToString() + suf[place];
    }

希望这会帮助你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读