重命名Ruby的方法;逃避冒号

时间:2012-03-04 23:04:51

标签: ruby file file-rename

在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"

是否可以在字符串中使用冒号来重命名文件?

1 个答案:

答案 0 :(得分:0)

FYI - 在NTFS中,冒号标识同一文件的单独流..." Foo Bar:Foo.txt"识别文件" Foo Bar",stream" foo.txt的&#34 ;.参考"备用数据流" (目前http://support.microsoft.com/kb/105763)。 AFIK这个功能并没有真正广泛使用,虽然我已经看到它用于标记带有第三方数据的文件(我用它来存储文件&#sha1,用于在流*:sha1下进行欺骗识别)。