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/

10-12 04:05
查看更多