2011-02-16 80 views
37

假設我有一個文件在/source.txt,我想將其複製到/a/b/c.txt/a/a/b可能存在也可能不存在。複製文件,根據需要在Ruby中創建目錄

有沒有辦法複製文件並讓它在必要時創建必要的父目錄?

理想情況下,這將是一個命令。特別是,我想避免解析目標路徑的文件/目錄部分,然後手動調用FileUtils.mkdir_pFileUtils.cp

純Ruby是首選,但Rails依賴的解決方案是可以接受的。

+1

您爲什麼想要在一個命令中執行該操作?大多數文件系統都是這樣工作的。您需要一個目錄,然後才能將文件放入其中。 2或3個電話有什麼問題? – xinit 2011-02-16 18:57:23

回答

83

通常,您需要確保目標目錄路徑存在,因此我懷疑任何內置命令是否會執行您要查找的內容。

但是使用FileUtils.mkdir_p(dir)可能非常簡單,尤其是通過使用File.dirname()來解析路徑。您甚至可以將其包裝在實用程序中,例如:

require 'fileutils' 

def copy_with_path(src, dst) 
    FileUtils.mkdir_p(File.dirname(dst)) 
    FileUtils.cp(src, dst) 
end 
相關問題