0
在Ruby中重命名文件时,如何转义冒号?Ruby的重命名方法;转义冒号
我有以下代码(名称与已填充在数据的散列):
new_filename = ""
counter = 0
Dir.glob(folder_path + "/*").each do |f|
numbering = names.index(names.values.sort[counter])
new_filename = numbering + " - " + names.values.sort[counter]
puts "New file name: " + new_filename
File.rename(f, folder_path + "/" + new_filename + File.extname(f))
counter += 1
end
puts "Renaming complete."
的new_filename
输出是正确的,例如"Foo - Bar: Foo.txt"
。重命名文件时,该文件具有以下格式:"Foo - Bar/ Foo.txt"
。
我试着用反斜线冒号转义,但似乎不起作用,因为我的输出如下所示:"Foo - Bar/\ Foo.txt"
。
是否可以在重命名文件的字符串中有冒号?
你使用哪个系统? Windows不允许在文件名中使用':'。某些操作系统(我认为Mac)使用':'作为文件夹的分隔符。似乎Ruby将':'解释为一个新文件夹。 – knut 2012-03-04 23:24:10
@knut:旧的MacOS使用':'作为文件夹,OSX使用像其他类型Unix一样的'/'。带有冒号的文件名显示在shell中,但Finder会将冒号转换为斜线以便显示。 – 2012-03-04 23:27:16
@ muistooshort:从技术上讲,我很确定“:”仍然用作HFS + - IIRC中的分隔符,它在POSIX级别与“/”交换(因为这是POSIX分隔符),然后GUI层交换它们背部。 – Chuck 2012-03-04 23:41:04