2016-01-19 109 views
-2

我想查找目錄下的所有zip文件,並將其文件名(不是完整路徑)列出給客戶,並將zip文件複製到當前目錄下。下面是我的腳本:Ruby腳本僅打印zip文件

require 'fileutils' 

Dir.glob('/ABC/DEF/GHI/XYZ/hello_world_1.2*.zip') do |z_file| 
    if File.file?(z_file) 
    puts "#{z_file.to_s}" 
    FileUtils.cp_r(z_file, ".") 
    end 
end 

輸出:

/ABC/DEF/GHI/XYZ/hello_world_1.2.345.zip 
/ABC/DEF/GHI/XYZ/hello_world_1.2.678.zip 

我的腳本列出的完整路徑,例如/ABC/DEF/GHI/XYZ/hello_world_1.2.345.zip。這需要一些方向。任何建議,以改善它打印zipfile的名字,讚賞。

+0

您需要閱讀[文件文檔(http://ruby-doc.org/core-2.3.0/File.html)。它有實用的方法來做你想做的事情。我建議通讀所有文檔幾次。這樣你就會知道有什麼可用的;即使你不記得它在哪裏,你會知道有一些東西可以開始搜索。 http://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users/261593#261593 –

回答

4

您可以使用File::basename來獲取文件的基本名稱(xxx.zip)。

0

工作代碼爲:

require 'fileutils' 

Dir.glob('/ABC/DEF/GHI/XYZ/hello_world_1.2*.zip') do |z_file| 
    if File.file?(z_file) 
    puts File.basename("#{z_file.to_s}") 
    FileUtils.cp_r(z_file, ".") 
end 
end 
+0

這是沒有必要提供您的工作代碼作爲回答。相反,請選擇提供解決問題所需信息的答案。 –