我经常在我的脚本中使用长路径,因为我在 Windows 上,所以我必须将这些长路径转换为带有斜杠而不是反斜杠的 nix 样式。如果此后您复制该路径以转到该文件夹,没有什么困难但很烦人,因为在资源管理器中您必须再次执行相反的操作。
所以我做了一个函数来进行转换,现在我可以使用可以复制的 windowspaths 并让 Ruby 满意。
问题:这里有更优雅的解决方案吗?我不喜欢第二个 gsub 在开头处理双 \ 并且也想在结尾处理 \ (目前不可能)。该函数应该能够处理网络 unc 的 (\..) 和本地驱动器路径 (c:..)
class String
def path
self.gsub('\\','/').gsub(/^\//,'//')
end
end
path = '\\server\share\folder'.path
Dir.glob(path+'**/*') do |file|
puts file
end
#=>
#//server/share/folder/file1.txt
#//server/share/folder/file2.txt