打开目录并创建新文件

时间:2016-05-17 11:32:59

标签: ruby

我有这个声明创建嵌套目录:

require 'fileutils'
FileUtils::mkdir_p ''+project_name+'/new_folder'

我想在README.md内添加一个名为new_folder的新文件。有没有办法用Ruby实现这个目标?

3 个答案:

答案 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"