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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值