Grails 如何在groovy中列出虚拟(subst)磁盘中的文件?

Grails 如何在groovy中列出虚拟(subst)磁盘中的文件?,grails,jenkins,groovy,virtual-drive,Grails,Jenkins,Groovy,Virtual Drive,我喜欢groovy。这是一个非常强大的脚本,我们在任何地方都使用它。最近在Jenkins服务器上,我们试图获取驻留在虚拟驱动器上的一些文件,这些文件是由subst命令创建的。问题是groovy似乎不支持虚拟驱动器,但我没有找到任何关于这一点的确认。这是真的吗?有什么解决办法吗 下面是我们使用的示例代码: import groovy.io.FileType def list = [] //the original file path for T: is C:\Users\MyUser\works

我喜欢groovy。这是一个非常强大的脚本,我们在任何地方都使用它。最近在Jenkins服务器上,我们试图获取驻留在虚拟驱动器上的一些文件,这些文件是由subst命令创建的。问题是groovy似乎不支持虚拟驱动器,但我没有找到任何关于这一点的确认。这是真的吗?有什么解决办法吗

下面是我们使用的示例代码:

import groovy.io.FileType

def list = []
//the original file path for T: is C:\Users\MyUser\workspace\MyProject\src\test\data
def dir = new File("T:" + "\\")
dir.eachFile (FileType.FILES) { file ->
  list << file
}

list.each{
  println "${it}"
}
导入groovy.io.FileType
def列表=[]
//T:的原始文件路径是C:\Users\MyUser\workspace\MyProject\src\test\data
def dir=新文件(“T:“+”\\”)
dir.eachFile(FileType.FILES){file->

list我自己找到了答案,但是@Hugues Moreau 9输入是我找到答案的原因

这是一个权限问题。Jenkins在我的默认帐户下运行,但问题是由Apache(httpd.exe)引起的。httpd.exe是作为系统帐户运行的,它没有访问T的权限:。我所做的是从下载PSEXEC.exe,并通过此工具以系统用户身份打开命令行:

PSEXEC -i -s -d CMD
之后,我为系统用户创建了一个subst目录T:


正如Hugues指出的,更精确的描述和问题在这里:

我在过去遇到过类似的问题,显然“虚拟驱动器映射”不一定对所有用户都可见。您是如何设置虚拟驱动器的,Jenkins使用什么用户和权限运行的?(如果您指定了这一点,可能会促使合适的专家提出见解)嗨,Hugues Moreau 9.Thanx,谢谢你们的反馈。这是一个有趣的提示。我正在和我自己的用户一起运行Jenkins。有趣的是,我现在在SoapUI下尝试了相同的脚本,它成功了。这意味着Groovy可以处理虚拟驱动器,但它不能在Jenkins下处理它们。我将尝试研究更多这部分。Jenkins是作为服务运行的吗这显然也很重要是的。Jenkins是以我的帐户windows凭据作为服务运行的。因此,也许适当的问题是。无论如何,这不是Groovy的问题。