2

这是我在 groovy 中尝试做的事情:

def url = "\\data\\aaa\\Service\\111"
def d = url.find("\\data\\aaa\\Service")

但是dis null,根据文档,这意味着它找不到匹配项。

我已经在没有斜线的情况下进行了测试,它工作正常,所以我知道问题与斜线有关。

我怎样才能找到\\data\\aaa\\Servicegroovy \\data\\aaa\\Service\\111

编辑:

这是我的问题并尝试解决它:

  • url进来作为/data/cpp/Service/111
  • folder.path返回\data\cpp\Service\111\222

所以我试图将"/"url转换"\"url = "\data\cpp\Service\111"

然后我需要从返回url的任何内容中删除该部分folder.path

以下是该努力的反映:

def getList(String url) {
    def list = []
    def dir = new File(url)
    url= url.replaceAll("/", "\\\\")
    def d = url.find("\\\\data\\\\aaa\\\\Service")
    dir.eachDirRecurse
        { folder ->
            list << folder.path.replaceAll(url,'')
        }
    return list
}

但是没有任何东西被替换,因为它无法urlfolder.path.

4

2 回答 2

0

我没有更改 URL 中的“/”斜杠,而是更改了 folder.path 返回的任何内容中的“\”斜杠

然后我从 folder.path 输出中删除了 URL。

def getFolder(String url) {
    def list = []
    def dir = new File(url)
    dir.eachDirRecurse
        { folder ->
            list << folder.path.replaceAll("\\\\", "/").replaceAll(url, '')
        }
        return list
}

谢谢您的帮助。

于 2013-07-12T20:11:44.073 回答
0

你需要避开斜线。以下可能会起作用:

def d = url.find("\\\\data\\\\aaa\\\\Service")

于 2013-07-12T18:17:54.897 回答