Ruby 打开目录并创建新文件

Ruby 打开目录并创建新文件,ruby,Ruby,我有一个创建嵌套目录的语句: require 'fileutils' FileUtils::mkdir_p ''+project_name+'/new_folder' 例如,我想在new\u文件夹中添加一个名为README.md的新文件。有没有办法用Ruby做到这一点呢?你只需要这样做 path_name = "#{project_name}/new_folder" FileUtils::mkdir_p path_name FileUtils::touch("#{path_name}/READ

我有一个创建嵌套目录的语句:

require 'fileutils'
FileUtils::mkdir_p ''+project_name+'/new_folder'
例如,我想在
new\u文件夹中添加一个名为
README.md
的新文件。有没有办法用Ruby做到这一点呢?

你只需要这样做

path_name = "#{project_name}/new_folder"
FileUtils::mkdir_p path_name
FileUtils::touch("#{path_name}/README.md")
这将在
项目名称/new\u文件夹
目录中创建一个名为
README.md
的空文件。

您只需执行以下操作即可

path_name = "#{project_name}/new_folder"
FileUtils::mkdir_p path_name
FileUtils::touch("#{path_name}/README.md")

这将在
项目名称/new\u文件夹
目录中创建一个名为
README.md
的空文件。

您可以这样做

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
,您可以这样做

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
,用于构建文件规范,最好使用
文件.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"
在“新建文件夹”之前和之后提供斜杠时,斜杠仍然有效:

2.3.0 :010 > filespec = File.join(project_name, '/new_folder/', 'README.md')
 => "my_project/new_folder/README.md"

对于构建filespec,最好使用
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"
在“新建文件夹”之前和之后提供斜杠时,斜杠仍然有效:

2.3.0 :010 > filespec = File.join(project_name, '/new_folder/', 'README.md')
 => "my_project/new_folder/README.md"

''+
的作用是什么?它获取用户的输入并将其创建为主文件名。例如:
project\u name=gets.chomp
我相信@sawa意味着空字符串“”是不必要的,Raymond。无论如何,在这样的情况下,最好使用字符串插值而不是串联:
“{project\u name}/new\u folder”
它获取用户的输入并将其创建为主文件名。例如:
project\u name=gets.chomp
我相信@sawa意味着空字符串“”是不必要的,Raymond。无论如何,在这样的情况下,最好使用字符串插值而不是串联:
“{project\u name}/new\u folder”