2013-12-18 32 views
0

我試圖通過Ruby將文件從一個文件夾移動到另一個文件夾,但我一直試圖讓Pathname.new工作。作爲參考,這些文件是作爲其正常目錄中的中間數組保存的。我知道我可以通過CLI移動它,但我希望程序能夠爲我做到這一點。這是我迄今爲止所擁有的。我知道這是錯的;我只是沒有得到如何解決它。如何在ruby中更改文件的路徑

temp_array.each {|song| song.path(Pathname.new("/Users/tsiege/Desktop/#{playlist_name}"))} 

回答

4

看一看FileUtils.mv

require 'fileutils' 

temp_array.each do |song| 
    FileUtils.mv song.path, "/Users/tsiege/Desktop/#{playlist_name}" 
end 

確保目錄#{playlist_name}存在之前,但:

FileUtils.mkdir_p "/Users/tsiege/Desktop/#{playlist_name}" 
+0

我應該把要求放在程序的頂部還是沒有關係?我確實已經建立了目錄,但是感謝您的支持。 – Tsiege

+0

嚴格地說,在使用'FileUtils'之前,你只需要require語句,但把它放在頂端就是約定。 –

+0

太棒了,非常感謝您的幫助。如果我被允許upvote你的答案,我會的。 – Tsiege

1

要移動的文件,你可以使用FileUtils.mv

require 'fileutils' 
FileUtils.mv 'from.ext', 'to.ext' 

http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-mv

如果你想在一個目錄中的文件列表,你可以使用:

Dir['/path/to/dir/*']  

http://ruby-doc.org/core-1.9.3/Dir.html

最後,你可能還需要檢查,如果你有一個文件或目錄:

File.file? file 
File.directory? dir 

http://ruby-doc.org/core-1.9.3/File.html#method-c-file-3F