2015-10-14 73 views
-1

該程序的目的是通過gets.chomp將圖像從SD卡複製到新問題文件夾中。我找不到從gets.chomp變量new_batch創建新目錄的方法。你能告訴我做錯了什麼嗎?通過`gets.chomp`將文件移動到新創建的目錄中

Dir.chdir '/home/moot/pickaxe/pics' 

pic_names = Dir['/media/moot/**/*.{CR2,cr2,JPG,jpg}'] 
puts nil 
puts "What would you like to call this batch? e.g Subject_Location" 
puts nil 
batch_name = gets.chomp 

require 'fileutils' 
FileUtils::mkdir_p "#{batch_name}" 
Dir.chdir '/home/moot/pickaxe/pics/#{batch_name}' 

puts nil 
print "Downloading #{pic_names.length} Files: " 

pic_number = 1 

pic_names.each do |name| 
    print 'ˁ˚ᴥ˚ˀ ' 

    new_name = if pic_number < 10 
    "#{batch_name} 0#{pic_number}_#{Time.now} .CR2" 
    else 
    "#{batch_name} #{pic_number}_#{Time.now} .CR2" 
    end 

    require 'fileutils' 
    include FileUtils 
    cp(name, new_name) 

    pic_number = pic_number + 1 
end 
puts nil 
puts "Move Complete." 
+0

你可以把你的代碼放在codetags中嗎?這樣不可讀。 在你的mkdir中,你最好把路徑創建到哪裏,chdir也不需要,然後 – peter

+0

你試過用'FileUtils :: mkdir_p「/ home/moot/pickaxe/pics /#{ batch_name}「'? –

+0

謝謝Yevgeniy,工作。 – Charris11

回答

0

爲什麼不簡單地這樣?

Dir.mkdir("#{batch_name}")