以下是我在groovy中尝试做的事情:
def url = "\\data\\aaa\\Service\\111"
def d = url.find("\\data\\aaa\\Service")
但是d
是null
,根据文档意味着它无法找到匹配项。
我已经测试过没有斜线并且工作正常,所以我知道这个问题与斜杠有关。
如何在常规\\data\\aaa\\Service
中找到\\data\\aaa\\Service\\111
?
修改
到目前为止,这是我的问题并尝试解决它:
url
以/data/cpp/Service/111
folder.path
返回\data\cpp\Service\111\222
所以我试图将网址中的"/"
转换为"\"
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
}
但是没有任何内容被替换,因为它无法在url
中找到folder.path
。
答案 0 :(得分:0)
你需要逃避斜杠。以下内容可能有效:
def d = url.find("\\\\data\\\\aaa\\\\Service")
答案 1 :(得分: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
}
感谢您的帮助。