3

我想在 Windows 机器上使用 Dir.glob 获得一个简单的文件列表,其中过滤器类似于//hostname/share/folder/*.zip.

唯一适用于 windows 上 glob 的是本地路径:c:/folder/*.zip

我尝试了不同的方法,但到目前为止没有运气:

\\\\hostname\\share\\folder\\*.zip
\\hostname\share\folder\*.zip
//hostname/share/folder/*.zip 
z:/folder/*.zip    # z: would be a network drive

我正在使用 Ruby 1.8.7-p352 并在不同的 Windows 平台上进行了尝试。

4

3 回答 3

4

这是 Windows7 和 Ruby 1.9.3 上的工作示例

def get_files(path)
  Dir.glob("#{path}/**/*").each {|e|puts e}
end

list_files("//USER-PC/SHARE/MAP")
于 2012-05-02T18:35:01.210 回答
2

至少这是可能的,我过去做到了。

为了继续c:\usr\*hostname使用:

Dir['\\\\hostname/c$/usr/*']

的组合

  • '和四个\
  • /作为分隔符(不适用于主机)
  • c$反而c:

对我的成功很重要。

于 2012-05-02T18:26:02.573 回答
0

感谢所有的投入。很遗憾地告诉你,这个问题与 ruby​​ 的关系不如 Windows 问题。通过 ruby​​ 控制台运行时,一切正常,问题是我安装了一个使用本地系统帐户的 mongrel 服务,这似乎无法说服正确连接到网络共享。它现在可以直接使用普通帐户。

于 2012-05-03T18:23:40.293 回答