Ruby 为什么不是';这个glob不是在为我的服务器创建Rake文件列表吗?

Ruby 为什么不是';这个glob不是在为我的服务器创建Rake文件列表吗?,ruby,file,rake,glob,Ruby,File,Rake,Glob,我如何从以下位置获取空文件列表: files = FileList.new("#{DEPLOYMENT_PATH}\**\*") 其中部署路径为\\myserver\anndsomepath 如何从这样的服务器获取文件列表?这是Ruby/Rake的问题吗 更新: 我试过: files = FileList.new("#{DEPLOYMENT_PATH}\\**\\*") files = Dir.glob("#{DEPLOYMENT_PATH}\\**\\*") files

我如何从以下位置获取空文件列表:

  files = FileList.new("#{DEPLOYMENT_PATH}\**\*")
其中部署路径为
\\myserver\anndsomepath

如何从这样的服务器获取文件列表?这是Ruby/Rake的问题吗

更新

我试过:

  files = FileList.new("#{DEPLOYMENT_PATH}\\**\\*") 
  files = Dir.glob("#{DEPLOYMENT_PATH}\\**\\*") 
  files = Dir.glob("#{DEPLOYMENT_PATH}\**\*") 
再次更新如果我将服务器设置为:

 //myserver/andsomepath
并获取如下文件:

  files = FileList.new("#{DEPLOYMENT_PATH}/**/*") 

如果你这样做会发生什么

Dir.glob("#{DEPLOYMENT_PATH}\**\*")
编辑:我认为Ruby更喜欢您使用Unix风格的斜杠,即使您使用的是Windows。我认为其基本原理是相同的代码在Unix和Windows上都能工作,即使在Windows上看起来很奇怪


tl;dr:如果它与
/
一起工作,但与
\
不一起工作,则使用有效的方法。

如果这样做会发生什么

Dir.glob("#{DEPLOYMENT_PATH}\**\*")
编辑:我认为Ruby更喜欢您使用Unix风格的斜杠,即使您使用的是Windows。我认为其基本原理是相同的代码在Unix和Windows上都能工作,即使在Windows上看起来很奇怪

tl;dr:如果它与
/
一起工作,但与
\
不一起工作,则使用有效的方法。

因为:

 > "\*" == "*"
 => true 
改用
“\\***\*”

因为:

 > "\*" == "*"
 => true 

请改用
“\\***\*”

Ruby'
文件。join
旨在以独立于系统的方式构建文件路径,帮助您处理文件路径:

File.join('a','b','c')
=> "a/b/c" 
因此:

Ruby通过感知操作系统来确定文件路径分隔符,并且应该自动提供正确的值。在Windows XP、Linux和Mac OS上:

File::SEPARATOR
=> "/"

File.join(DEPLOYMENT_PATH, '**', '*')
=> "/myserver/andsomepath/**/*"

虽然你可以忽略帮助者,但它可以让你的生活更轻松。因为您正在使用服务器,所以可能需要查看
文件::ALT_SEPARATOR
,或者只是重新分配到
SEPARATOR
,忽略警告,让Ruby完成其余工作。

Ruby'
文件。join
旨在以独立于系统的方式构建文件路径,从而在处理文件路径时为您提供帮助:

File.join('a','b','c')
=> "a/b/c" 
因此:

Ruby通过感知操作系统来确定文件路径分隔符,并且应该自动提供正确的值。在Windows XP、Linux和Mac OS上:

File::SEPARATOR
=> "/"

File.join(DEPLOYMENT_PATH, '**', '*')
=> "/myserver/andsomepath/**/*"

虽然你可以忽略帮助者,但它可以让你的生活更轻松。因为您是针对服务器工作的,所以您可能希望查看
文件::ALT\u SEPARATOR
,或者只是重新分配到
SEPARATOR
,忽略警告,让Ruby来完成其余的工作。

如果您避开
部署路径
斜杠,是否会有所帮助:
\\\myserver\\anndsomepath
“Ruby文件列表快把我逼疯了”这不是一个很好的问题标题——我们不是合格的心理学家。问题不在于Ruby或Rake。“问题”在于Windows从世界其他地方向后做事情。Ruby在Windows上工作,但它是从*nix的角度设计的(谢天谢地)。此外,反斜杠用于插值字符串中的转义。i、 例如,如果您有一个名为
“C:\somedir\test\batch”
,Ruby解释器会看到:
C:omedir esbatch
@JasonLewis:What's“the rest of the world”?如果您避开
部署路径
斜杠:
\\\myserver\\anndsomepath
“Ruby文件列表快把我逼疯了”,这会有帮助吗这不是一个很好的问题标题——我们不是合格的心理学家。问题不在于Ruby或Rake。“问题”在于Windows从世界其他地方向后做事情。Ruby在Windows上工作,但它是从*nix的角度设计的(谢天谢地)。此外,反斜杠用于插值字符串中的转义。i、 例如,如果您有一个名为
“C:\somedir\test\batch”
,Ruby解释器将看到:
C:omedir esbatch
@JasonLewis:What's the rest of the world”?@icn:那么您的字符串可能有问题,而不是使用文件列表。@RyanBigg:教某人如何钓鱼不是答案?@icn:那么您的字符串可能有问题,而不是使用文件列表。@RyanBigg:教某人如何钓鱼不是答案?尝试使用files=FileList.new(“{DEPLOYMENT\u PATH}\\\\\\\\\\*”),不使用files=FileList.new(“#{DEPLOYMENT\u PATH}\\\\\\\\*”),不工作