2015-11-15 44 views
0

我的項目結構,內容是這樣的:複製文件夾及其在紅寶石

Project_root 
|__Templates 
| |__Report_Template 
| 
|__Product 
    |__product.rb 

我應該寫在product.rb以複製Report_Template文件夾及其內容到Product文件夾中的代碼是什麼? 我試圖用FileUtils.cp_r,但我將不得不放棄源文件的完整路徑,如果在未來我謹Project_root,就會有問題。

+0

我認爲你是用'FileUtils.cp_r'在正確的道路上,但你必須找到一種方式去'Project_root','Project_root/Product',或'Project_root /產品/的一個路徑product.rb'在運行.. – Kenney

+0

我怎樣才能到Project_root? –

+0

也許看看周圍[這裏](http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-cp_r),也許下一個條目會給你一個主意。我不知道ruby,但通常可以獲取「工作目錄」,程序啓動的路徑以及正在執行的程序或腳本的路徑。 – Kenney

回答

1

正如Kenney說,你可以從該項目開始,在__dir__路徑。這裏我用Pathname類更容易操作的路徑,但它是完全可選的(你可以使用File#join等一樣好):

require 'pathname' 
templates_pathname = Pathname.new(__dir__) + "../Templates/Report_Template" 
# optional: 
templates_path = templates_pathname.realpath.to_s 

Pathname#realpath會給你的絕對路徑,如果你需要它;但FileUtils#cp_r會很樂意接受(以上即templates_pathname)一Pathname,並不會介意這不是絕對的。