Ruby 中获取目录大小_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Ruby 中获取目录大小

Ruby 中获取目录大小

 2012/1/10 12:44:55  clark1231  程序员俱乐部  我要评论(0)
  • 摘要:当前Chito中统计目录大小完全是偷懒的方式:classDirdefself.size(dir)`du-s#{dir}|awk'{print$1}'`.to_iendend直接调用du这个程序然后把结果转换成数值就可以了,非常方便~不过要是运行在Windows下就不灵了,只好自己写代码统计下:classDirdefself.size(dir)sum=0Dir.foreach(dir)do|entry|nextifentry=~/^\./path=File.join(dir,entry
  • 标签:目录 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

发表评论
用户名: 匿名