gpt4 book ai didi

Ruby:windows路径转换

转载 作者:行者123 更新时间:2023-12-05 08:02:01 24 4
gpt4 key购买 nike

我经常在我的脚本中使用长路径,因为我在 Windows 上,所以我必须将这些长路径转换为带有斜杠而不是反斜杠的 nix 样式。如果此后您复制该路径以转到该文件夹​​,这没什么困难但很烦人,因为在资源管理器中您必须再次执行相反的操作。

所以我创建了一个函数来进行转换,现在我可以使用我可以复制的窗口路径并让 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

最佳答案

使用 File.join 的建议让我尝试了常规拆分和连接,现在我有了这个版本,摆脱了丑陋的双 gsub,现在它更长但可以处理结尾斜线。有人有更好的版本吗?

class String
def to_path(end_slash=false)
"#{'/' if self[0]=='\\'}#{self.split('\\').join('/')}#{'/' if end_slash}"
end
end

puts '\\server\share\folder'.to_path(true) #//server/share/folder/
puts 'c:\folder'.to_path #c:/folder

关于Ruby:windows路径转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10931022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com