我正在尝试通过Windows上的irb
访问UNC共享。在Windows shell中,它将是
\\server\share
我试图逃避所有的反斜杠。
irb(main):016:0> Dir.entries '\\\\server\share'
Errno::ENOENT: No such file or directory - \\server\share
并使用IP地址而不是名称
irb(main):017:0> Dir.entries '\\\\192.168.10.1\share'
Errno::ENOENT: No such file or directory - \\192.168.10.1\share
答案 0 :(得分:5)
尝试用另一个'\'
来逃避'\'Dir.entries( '192.168.10.1 \\\\ \\份额')
答案 1 :(得分:5)
Ruby解释POSIX way中的路径,这意味着你应该尽可能使用正斜杠。
//server/share
不需要尾部斜杠,就像在本机Windows中一样。您可以使用反斜杠,但必须使用另一个反斜杠{/ 3}}。
\\\\server\\share
我只建议你直接从本机程序传递UNC路径而不能转换它们。当我混合使用Ruby / Windows路径时,比如使用Ruby方法和本机Windows应用程序的构建脚本,每个需要不同的路径,我会使用一些帮助程序:
def windows_path(value)
value.gsub '/', '\\'
end
def posix_path(value)
value.gsub '\\', '/'
end
如果您的路径是字面的,则始终用单引号括起您的路径,如果您进行插值,则将其用双引号括起来。正斜杠告诉Ruby开始解释正则表达式。这是我在irb中常见的错误。
irb> File.exists? //server/share
SyntaxError: (irb):2: unknown regexp options - rvr
答案 2 :(得分:0)
看起来你错过了斜线。试试'\\server\share\'
它类似于Windows驱动器的根目录。那是C:\
,而不是C: