【发布时间】:2015-10-14 14:13:24
【问题描述】:
该程序的目的是将图像从 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."
【问题讨论】:
-
你能把你的代码放在代码标签中吗?不是那样可读的。在您的 mkdir 中,您最好将路径也放在创建文件夹的位置,然后不需要 chdir
-
你试过
FileUtils::mkdir_p "/home/moot/pickaxe/pics/#{batch_name}"创建吗? -
感谢 Yevgeniy,成功了。