在插件中添加 Controller
Ruby 中获取目录大小
galeki
posted @ 2008-04-15 09:39PM
in Ruby&Rails进修
原来有个 reset_session
查了查,Dir 类没有 size 方法,也没找到现成的解决方案,自己动手吧~
当前 Chito 中统计目录大小完全是偷懒的方式
:
-
class Dir
-
def self.size(dir)
-
`du -s #{dir} | awk '{print $1}'`.to_i
-
end
-
end
直接调用 du 这个程序然后把结果转换成数值就可以了,非常方便~ 不过要是运行在 Windows 下就不灵了,只好自己写代码统计下:
-
class Dir
-
def self.size(dir)
-
sum = 0
-
Dir.foreach(dir) do |entry|
-
next if entry =~ /^\./
-
path = File.join(dir, entry)
-
FileTest.directory?(path) ? sum += Dir.size(path) : sum += File.size(path)
-
end
-
sum
-
end
-
end
不过计算目录大小是个很慢的工作,尤其时文件夹嵌套很深,小文件又很多的时候,缓存一下是很必要的,当新文件上传或者删除设置个 dirty 标记,dirty 标记存在的时候再去重新获取。
- 全局相关文章
-
- No match
- 相关文章
-
- No match
