我正在关注教程,并且正在尝试更改位于' drive / users / myname / test'下的文件夹中的三个文件的名称。我收到了错误:
'chdir': No such file or directory - test'.
起始路径已经是&drive; users / myname',这就是为什么我认为我只需要输入' test' Dir.chdir
。
如何在Mac OS上正确输入路径?
Dir.chdir('test')
pic_names = Dir['test.{JPG,jpg}']
puts "What do you want to call this batch"
batch_name = gets.chomp
puts
print "Downloading #{pic_names.length} files: "
pic_number = 1
pic_names.each do |p|
print '.'
new_name = "batch_name#{pic_number}.jpg"
File.rename(name, new_name)
pic_number += 1
end
答案 0 :(得分:1)
我认为你必须提供绝对路径。所以,你的第一行应该是:
Dir.chdir("/drive/users/myname/test")
根据文件:
Dir.chdir("/var/spool/mail")
puts Dir.pwd
应输出/var/spool/mail
。
您可以查看documentation了解更多示例。
答案 1 :(得分:0)
在:
File.rename(name, new_name)
name
在尝试使用之前从未定义过。
或许p
应为name
,或name
应为p
?
根据这个假设,我可以写出类似的循环:
pic_names.each_with_index do |name, pic_number|
print '.'
new_name = "#{ batch_name }#{ 1 + pic_number }.jpg"
File.rename(name, File.join(File.dirname(name), new_name))
end
File.join(File.dirname(name), new_name)
很重要。您必须在原始文件名和新文件名中引用相同的路径,否则文件将被移动到新位置,该位置将是当前工作目录指向的位置。目前您在使用chdir
时屏蔽了这一点,但是,如果没有这个,您就不知道文件的去向。