文件系统对象符号系统

时间:2013-06-13 13:19:07

标签: ruby

用于命名包含文件名,包含路径和文件实例的文件名的变量的最标准Ruby符号是什么?完全清楚的方法是:

file_name = "bar.txt"
file_name_with_path = "foo", file_name
file = File.open( file_name_with_path )

但它太长了。在方法定义中使用:file_name_with_path是不可能的:

def quux( file_name_with_path: "foo/bar.txt" )
  # ...
end

在无数次遇到这种情况后,我意识到需要缩短惯例。我开始制定个人缩短惯例::file_name => :fn:file_name_with_path => :fnwp:file始终引用File个实例,:fn从不包含路径,:fnwap表示:file_name_with_absolute_path等。但每个人都必须面对此所以我在问:这是否有公开会议?更具体地说,Rails代码是否具有此约定?

1 个答案:

答案 0 :(得分:1)

  

但是每个人都必须面对这个......

不,不是真的,因为你真的过分思考了这一点。

只需使用file:filename:即可。 无关紧要您的文件名是包含相对路径还是绝对路径,或者路径是否包含目录,您的代码应该反映这一点。文件的路径只是文件的路径,所有路径都应该由您的代码完全相同:它只是打开文件,如果不能,则会引发错误。

您可以使用文件系统实用程序从路径中提取目录和基本名称,无论目录是否存在,它们都可以在任何路径上正常工作,无论路径是否为绝对路径或亲戚。这没关系。