我有這樣的語句創建嵌套目錄:打開目錄,並創建新的文件
require 'fileutils'
FileUtils::mkdir_p ''+project_name+'/new_folder'
我想補充,例如一個名爲README.md
內new_folder
新文件。有沒有辦法用Ruby來完成?
我有這樣的語句創建嵌套目錄:打開目錄,並創建新的文件
require 'fileutils'
FileUtils::mkdir_p ''+project_name+'/new_folder'
我想補充,例如一個名爲README.md
內new_folder
新文件。有沒有辦法用Ruby來完成?
您需要做的僅僅
path_name = "#{project_name}/new_folder"
FileUtils::mkdir_p path_name
FileUtils::touch("#{path_name}/README.md")
這將創建一個名爲README.md
您project_name/new_folder
目錄內的空文件。
它工作正常。謝謝。 – Raymond
你可以像下面這樣做
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"]
[[email protected] ~/foo/new_folder]$ ls -la
total 0
drwxr-xr-x 3 retgoat staff 102 17 май 17:44 .
[email protected] 119 retgoat staff 4046 17 май 17:45 ..
-rw-r--r-- 1 retgoat staff 0 17 май 17:44 README.md
請注意我沒有測試你的代碼,但如果它適合你,下面的例子將創建內部new_folder
文件README.md
爲建設filespecs ,最好使用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"
什麼是' '' +'呢? – sawa
它抓取用戶的輸入並將其創建爲主文件的名稱。例如:'project_name = gets.chomp' – Raymond
我相信@sawa意味着沒有必要使用空字符串,Raymond。 –