如何在 C# 中获取目录大小(目录中的文件)?

2024-03-01

我希望能够使用 C# 获取本地目录之一的大小。我试图避免以下情况(伪代码),尽管在最坏的情况下我将不得不解决这个问题:

    int GetSize(Directory)
    {
        int Size = 0;

        foreach ( File in Directory )
        {
            FileInfo fInfo of File;
            Size += fInfo.Size;
        }

        foreach ( SubDirectory in Directory )
        {
            Size += GetSize(SubDirectory);
        }
        return Size;
    }

基本上,是否有 Walk() 可用,以便我可以遍历目录树?这将节省遍历每个子目录的递归。


下面是获取 .net 4.0 中文件夹大小的一种非常简洁的方法。它仍然受到必须递归遍历所有文件的限制,但它不会加载潜在的巨大文件名数组,而且只有两行代码。确保使用命名空间System.IO and System.Linq.

private static long GetDirectorySize(string folderPath)
{
    DirectoryInfo di = new DirectoryInfo(folderPath);
    return di.EnumerateFiles("*.*", SearchOption.AllDirectories).Sum(fi => fi.Length);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中获取目录大小(目录中的文件)? 的相关文章

随机推荐

  • 在 Mercurial 中进行合并时忽略空格

    在 Mercurial 中进行合并时 我们遇到了一个问题 其中空白更改会导致合并冲突 从而掩盖了我们可能遇到的任何 真实 冲突 并使合并成为一场噩梦 我们最近遵循了一种格式样式 该样式更改了某些分支中文件的缩进 并且从那时起合并几乎变得不可
  • 如何在Java字符类中表示空字符

    我想在 Java 中将空字符表示为 在字符串中 像那样char ch an empty character 其实我想替换一个字符而不留空格 我认为理解这意味着什么就足够了 没有字符 甚至没有空间 您可以分配 u0000 或 0 为此 请使用
  • 使用对话框框架的 primefaces 对话框未弹出

    我正在尝试使用 primefaces 对话框框架来简化我的代码 我已经按照 primefaces 4 0 用户指南中的示例进行操作 但它不起作用 我几乎逐字复制了该示例 创建了三个文件 一个包含对话框的文件 一个调用对话框的文件和一个支持
  • 在 R 中的命名空间中导入有什么好处?

    R 的命名空间机制允许人们export然后对用户可见的功能 此外 它还允许import来自其他包的函数 虽然出口的好处是显而易见的 但我在理解进口的好处时遇到了更多问题 一个好处似乎是 可以使用其他包中的功能 而无需附加包 从而节省内存 这
  • Objective-C/iOS:在后台保持蓝牙连接处于活动状态

    我已经研究了几天了 看起来当手机进入睡眠状态或应用程序在后台时 不可能保持蓝牙连接 然而 我发现一个应用程序声称它们可以一直运行 运行守护者应用程序 http itunes apple com ca app runkeeper id3002
  • jsPDF with Cordova - 添加图像

    我正在尝试使用 jsPDF 库生成 PDF https github com MrRio jsPDF https github com MrRio jsPDF 从移动 Cordova 应用程序中 我目前正在 Android 4 0 4 设备
  • Java反射带参数的私有方法最好的方法是什么?

    我正在尝试使用java反射调用私有方法我开发了一个小方法来调用其他方法迭代所有方法并按名称和参数类型进行比较我已成功调用4个方法 我有一个问题 1 这是最好的方法吗 因为我知道 class getMethod 仅匹配公共方法 Java有内置
  • 停止 ReSharper 添加注释

    我在我的 C 项目中使用 ReSharper 总的来说我很喜欢它 但是 当我执行某些重构操作时 它会不断向代码添加注释 例如 它添加了 NotNull 当我使用 检查参数是否为空 上下文操作时 Before context action p
  • SQL 连接:选择一对多关系中的最后一条记录

    假设我有一张客户表和一张采购表 每次购买都属于一位客户 我想获得所有客户的列表以及他们最后一次购买的商品SELECT陈述 最佳实践是什么 关于建立索引有什么建议吗 请在您的答案中使用这些表 列名称 顾客 id name 购买 id cust
  • Apache Camel 路由中的 Spring Boot 属性使用

    是否可以在 Apache Camel 路由中使用 Spring Boot 属性 Value 工作正常 但这是否可以直接放置表达式的占位符 Update 我知道 PropertiesComponent 但这将是除了我不喜欢的 Applicat
  • 根据时间/时间表交换 div 可见性

    在我的页面上 我有两个 div 一个 div 我希望从上午 10 点到下午 6 点 服务器时间 可见 而另一个 div 在剩余时间内可见 我尝试了一系列搜索来找到某种 javascript 或 jquery 内容交换器 但没有任何运气 感谢
  • 无法终止容器::尝试终止容器,但未收到退出事件

    我无法停止 删除或终止我的 docker 容器 下面给出的命令及其各自的错误消息 1 docker stop
  • 创建存储过程时是否需要“definer”?

    我已经将所有 MySQL 过程编写为root localhost CREATE DEFINER root localhost PROCEDURE p add user 问题是 当部署到另一台服务器时 我必须替换root与当前用户并替换loc
  • 奇怪的程序集名称从手机访问网站时出错

    我有一个用 Asp net MVC 制作的网站 它安装在共享托管环境的根目录中 现在 我已经在 Asp net MVC 中为该网站制作了一个移动版本 并将其安装为子域http m price tag org http m price tag
  • 有人可以解释 BCrypt 如何验证哈希吗?

    我正在使用 C 和 BCrypt Net 来哈希我的密码 例如 string salt BCrypt Net BCrypt GenerateSalt 6 var hashedPassword BCrypt Net BCrypt HashPa
  • 字符串数组是可变的吗?

    我想知道Java中的字符串数组是否是可变的 我知道字符串是不可变的 但是字符串数组怎么样 如果我有一个字符串数组 并更改内容 是否会创建一个新的字符串对象 或者实际值会改变吗 提前致谢 The Strings 包含在String 确实是不可
  • 从 React Native 中解析的对象数组中渲染图像源

    我正在构建一个反应本机应用程序 它假设使用一些 元数据 对象作为源 我正在解析数组中的每个对象并为每个对象返回一个 JSX 布局item 我遇到的唯一问题是如何提供图像来源 因为我将它们存储在本地并且需要require link 他们 我的
  • React Router - 刷新后保持在同一页面

    我正在学习反应 我有一个包含 4 个子页面的页面 我使用 React Router 来浏览这些页面 除了重新加载页面之外 一切正常 当我从页面 主页 转到 关于 或其他页面时 这是可以的 但是当我刷新页面时 它会再次渲染页面 关于 一秒钟
  • 浏览器关闭时的通知

    我有一个 chrome 扩展 当用户访问特定页面时 它会向用户发送通知 我希望在浏览器关闭或在后台运行时发送通知 类似于智能手机 任何想法或提示都会很棒 在 Chrome 扩展中 您可以使用 2 个工具 chrome gcm API htt
  • 如何在 C# 中获取目录大小(目录中的文件)?

    我希望能够使用 C 获取本地目录之一的大小 我试图避免以下情况 伪代码 尽管在最坏的情况下我将不得不解决这个问题 int GetSize Directory int Size 0 foreach File in Directory File