File 类有一个名为 size 的类方法,它接受一个路径并返回该路径指向的文件的大小。在文件上没有名为 size 的实例方法的原因是什么。
这就是为什么它对我很重要。
我正在使用 httpclient gem。我用它来将文件上传到服务器。例如,我将使用以下语句使用 httpclient 将文件上传到服务器
file=File.open("foo.txt")
HttpClient.new.put("/upload", file)
如果我没有将 size 实例方法添加到 File 类中,它会提示,所以我继续对它进行如下修补,
class File
def size
@file_size ||= File.size(self.path)
end
end
这有效,但我想知道为什么没有将 size 方法添加为实例方法,以及是否有更好的方法来完成我所做的工作。
最佳答案
此方法存在于 1.9.2 as documented 中,因此如果该方法已定义,您可能希望避免添加此补丁。
您所做的另一件事是缓存结果,这可能是错误的形式,因为它会随着文件的附加、截断或取消链接而改变。
关于ruby-on-rails - 为什么 Ruby File 类不包含 size 实例方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7681975/