文件说:
File.size(file_name)=>整数
返回file_name的大小。File.size?(file_name)=>整数或 如果file_name没有,则返回nil 存在或没有大小,大小 否则就是文件。
练习(ruby 1.8.7 i386-mswin32):
File.size?('c:/dir')
# => nill
File.size('c:/dir')
# => 0
nil对我来说很有意义,但是0?我期待一个例外。有人看到这个原因吗?
答案 0 :(得分:2)
目录是文件。好吧,我想在某些操作系统中它们不是,但在所有基于Unix的操作系统中它们都是。
当然,在Unix系统中,“常规”文件系统中的目录(即具有真实文件的目录,而不是/proc
等)也具有非零大小。
File.size('/etc')
=> 12288
答案 1 :(得分:1)
例外情况通常很慢,因此每当问题不严重时,出于效率原因最好使用返回标志。只要文件/目录存在,我就看不出异常,事实上会发现一个令人讨厌的问题。像这样,计算总文件大小只是简单地添加它们而不需要错误处理。