2015-10-14 49 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}") 
相关问题