File类有一个名为size的类方法,它接受一个路径并返回路径指向的文件的大小。什么是没有在文件上调用大小的实例方法的原因。
这就是为什么它对我很重要。
我正在使用httpclient gem。我用它来将文件上传到服务器。例如,我将使用以下语句使用httpclient
将文件上载到服务器file=File.open("foo.txt")
HttpClient.new.put("/upload", file)
如果我没有将大小实例方法添加到File类,它就会抱怨,所以我继续进行修改,如下所示:
class File
def size
@file_size ||= File.size(self.path)
end
end
这有效,但我想知道是否有理由没有将size方法作为实例方法添加,以及是否有更好的方法来完成我所做的工作。
答案 0 :(得分:8)
此方法存在于1.9.2 as documented中,因此如果已定义方法,您可能希望避免添加此修补程序。
你做的另一件事是缓存结果,这可能是糟糕的形式,因为文件被追加,截断或取消链接时可能会改变。