在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"
。
是否可以在字符串中使用冒号来重命名文件?
答案 0 :(得分:0)
FYI - 在NTFS中,冒号标识同一文件的单独流..." Foo Bar:Foo.txt"识别文件" Foo Bar",stream" foo.txt的&#34 ;.参考"备用数据流" (目前http://support.microsoft.com/kb/105763)。 AFIK这个功能并没有真正广泛使用,虽然我已经看到它用于标记带有第三方数据的文件(我用它来存储文件&#sha1,用于在流*:sha1下进行欺骗识别)。