我有这个声明创建嵌套目录:
require 'fileutils'
FileUtils::mkdir_p ''+project_name+'/new_folder'
我想在README.md
内添加一个名为new_folder
的新文件。有没有办法用Ruby实现这个目标?
答案 0 :(得分:4)
你只需要做
README.md
这将在project_name/new_folder
目录中创建一个名为{{1}}的空文件。
答案 1 :(得分:1)
你可以这样做
2.1.2 :015 > project_name = "foo"
=> "foo"
2.1.2 :016 > fld = FileUtils::mkdir_p "#{project_name}/new_folder"
=> ["foo/new_folder"]
2.1.2 :017 > FileUtils.touch "#{fld[0]}/README.md" if fld
=> ["foo/new_folder/README.md"]
[retgoat@iMac-Roman ~/foo/new_folder]$ ls -la
total 0
drwxr-xr-x 3 retgoat staff 102 17 май 17:44 .
drwxr-xr-x@ 119 retgoat staff 4046 17 май 17:45 ..
-rw-r--r-- 1 retgoat staff 0 17 май 17:44 README.md
请注意我没有测试您的代码,但如果它适用于您,以下示例将在README.md
new_folder
答案 2 :(得分:1)
要构建文件规范,最好使用File.join
方法。这是更高级别,处理任何额外或缺少的目录分隔符,并使用正确的文件分隔符为其运行的操作系统。
例如:
2.3.0 :006 > project_name = 'my_project'
=> "my_project"
2.3.0 :009 > filespec = File.join(project_name, 'new_folder', 'README.md')
=> "my_project/new_folder/README.md"
在&new -folder'之前和之后提供斜杠时,它仍然有效:
2.3.0 :010 > filespec = File.join(project_name, '/new_folder/', 'README.md')
=> "my_project/new_folder/README.md"