`
clark1231
  • 浏览: 254590 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Ruby 中获取目录大小

    博客分类:
  • ruby
阅读更多

当前 Chito 中统计目录大小完全是偷懒的方式:

  1. class Dir
  2.     def self.size(dir)
  3.        `du -s #{dir} | awk '{print $1}'`.to_i
  4.     end
  5. end

直接调用 du 这个程序然后把结果转换成数值就可以了,非常方便~  不过要是运行在 Windows 下就不灵了,只好自己写代码统计下:

  1. class Dir
  2.     def self.size(dir)
  3.         sum = 0
  4.         Dir.foreach(dir) do |entry|
  5.            next if entry =~ /^\./
  6.            path = File.join(dir, entry)
  7.            FileTest.directory?(path) ? sum += Dir.size(path) : sum += File.size(path)
  8.         end
  9.         sum
  10.     end
  11. end

不过计算目录大小是个很慢的工作,尤其时文件夹嵌套很深,小文件又很多的时候,缓存一下是很必要的,当新文件上传或者删除设置个 dirty 标记,dirty 标记存在的时候再去重新获取。

转载地址:http://www.galeki.com/posts/2282.html

分享到:
评论

相关推荐

    ruby 目录操作详细介绍

    在Ruby编程语言中,对目录的操作是至关重要的,特别是在处理文件系统时。下面将详细介绍如何在Ruby中进行目录的创建、删除、查询、修改以及读取文件等操作。 1. 创建文件夹 Ruby提供了多种创建文件夹的方法。例如,...

    ruby-2.4.5.tar.gz

    实际上,".tar.gz"是一种常见的Linux和Unix系统中使用的压缩格式,它首先使用tar命令将多个文件打包成一个单一的档案,然后用gzip工具进行压缩,以减小文件大小。 描述中还提到了"里面有两个文件",但只列出了"ruby...

    The Ruby Way(处理文件和目录)

    ### Ruby中的文件与目录处理 #### 10.1 处理文件和目录 计算机的主要功能之一就是处理数据,这不仅包括内部计算,还包括输入输出(I/O)操作,即与外部世界的交互。Ruby作为一种现代的编程语言,为用户提供了一套...

    在Ruby中处理文件的输入和输出的教程

    Ruby的IO类在内核(Kernel)模块中实现,派生自IO类的所有I/O方法提供了基本的文件操作功能,包括但不限于:读取(read)、写入(write)、读取一行(gets)、写入一行(puts)、读取一行(readline)、读取单个字符...

    Ruby on Rail 基础知识 一张纸

    在Ruby on Rails中,方法是执行特定任务的基本单元。以下列举了一些常用的方法: 1. **字符串处理方法**: - `capitalize!`: 将字符串的第一个字母转换为大写。 - `center`: 将字符串居中。 - `chomp!`: 删除字符串...

    ruby环境源码

    通过获取并编译Ruby源码,开发者可以深入理解其内部工作原理,自定义编译选项以满足特定需求,或者参与到Ruby的开发和贡献中去。此外,这种方式也适用于在没有预编译二进制包的环境下安装Ruby,比如在某些较旧的操作...

    ruby-2.25.tar.gz

    `.tar.gz`是一种常见的文件打包格式,它首先使用`tar`命令将多个文件或目录打包成一个单一的文件,然后用`gzip`工具进行压缩,以减小文件大小,便于传输和存储。 安装Ruby-2.2.5的步骤通常如下: 1. **解压**:...

    ruby-1.8.6-p114.tar.gz

    ".tar"意味着它是一个归档文件,可以将多个文件和目录打包到一起,而".gz"是gzip压缩算法的应用,用于减少文件大小,便于存储和传输。 4. **解压与编译**:要使用这个源码包,用户需要先使用`tar`命令解压,然后...

    Ruby-racksecureupload安全得上传文件

    它主要设计用来帮助开发者在Web应用中实现安全、可控的文件上传功能,避免常见的文件上传漏洞,如执行恶意代码、目录穿越等。本文将深入探讨这个库的核心概念、工作原理以及如何在实际项目中进行集成和使用。 首先...

    ruby基础教程(第四版)第17章 IO类1

    在Ruby编程语言中,IO(Input/Output)类是处理输入输出流的核心类,它同时也是File类的父类。本章主要介绍了如何进行文件和目录的相关操作。 18.1 文件的操作 18.1.1 变更文件名 使用`File.rename`方法可以更改...

    Ruby-Sprockets基于Rack的资源打包系统

    而在生产环境中,它会启用压缩,减小文件大小,提高性能。这种环境感知的能力使得开发和部署更加灵活。 7. **目录结构**:Sprockets默认使用`app/assets`目录来组织资源,其中`javascripts`、`stylesheets`子目录...

    ruby环境中自动编译sass教程

    在Windows系统中,你可以通过访问链接`www.jb51.net/article/61501.htm`来获取详细的Ruby安装指南。安装完成后,你可以通过在“Start Command Prompt with Ruby”中运行`ruby -v`来检查Ruby是否安装成功,如果返回...

    Cordova-Images-Injection:Ruby 脚本,可将默认图像注入您的项目,而无需加载它们。 如果像素不完美,将调整图片大小

    然后它运行在cordova 应用程序中找到的文件及其尺寸的“映射”,并按大小映射正确的图像通过在文件夹中复制到正确的命名约定来准备,然后复制 android/iphone 应用程序目录中的图像。 一个很好的附加好处是,如果...

    遍历输入的目录

    在IT行业中,遍历目录是一项基础且重要的...在实际应用中,通常还会结合过滤条件,只处理满足特定要求的文件或目录,例如按文件类型、大小或其他元数据筛选。通过这些方法,我们可以高效、灵活地管理文件系统中的内容。

    alienist_viewer:可以查看alienist生成的Ruby Memory Heap数据

    本文将详细介绍Alienist Viewer的功能、使用方法以及其在分析Ruby程序内存状态中的价值。 首先,让我们明确Alienist Viewer的核心功能。它是一个Web应用程序,设计用于解析和可视化由Alienist生成的Ruby内存堆快照...

    收集的多个ruby遍历文件夹代码实例

    该示例代码展示了如何使用Ruby递归地遍历指定路径下的所有文件,并输出每个文件的基本信息(如文件名和文件大小)。 **代码详解:** ```ruby def traverse_dir(file_path) if File.directory?(file_path) Dir....

    PyPI 官网下载 | rubygemsrecipe-0.1.8.tar.gz

    `.tar.gz`是一种常见的文件压缩格式,通常用于Linux和Unix环境,它首先使用tar命令将多个文件或目录打包成一个单一的归档文件,然后用gzip工具进行压缩,以减小文件大小,便于传输和存储。 标签“Python库”意味着`...

    PyPI 官网下载 | RubySyntaxBear-0.8.0.1470778714.tar.gz

    ".tar.gz"是Unix/Linux系统中常见的压缩方式,先用tar打包,然后用gzip进行压缩,以便减少文件大小,方便传输和存储。 标签为"Python库",意味着RubySyntaxBear是一个可以被其他Python项目引用和使用的模块。Python...

Global site tag (gtag.js) - Google Analytics