2013-07-12 94 views
2

這裏是我想在常規的事:如何找到文件路徑字符串的一部分?

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

dnull,根據文件,這意味着它不能找到一個匹配。

我測試過沒有斜槓,它工作正常,所以我知道這個問題與斜線有關。

我該如何獲得groovy在\\data\\aaa\\Service\\111中找到\\data\\aaa\\Service

編輯:

這是我的問題,並試圖到目前爲止解決這個問題:

  • url進來爲/data/cpp/Service/111
  • folder.path回報\data\cpp\Service\111\222

所以我試圖將url中的"/"轉換爲"\"這使得url = "\data\cpp\Service\111"

然後我需要從任何folder.path回報

下面取出url部分是這一努力的反映:

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之內。

+0

而不是更改URL中的「/」斜槓我更改folder.path中的「\\」斜槓 然後,我從folder.path中刪除了與URL匹配的路徑。 DEF的GetFolder(字符串URL){ DEF列表= [] DEF DIR =新的文件(URL) dir.eachDirRecurse {文件夾 - > 列表<< folder.path.replaceAll( 「\\\\」 ,「/").replaceAll(url,'') } 返回列表 } 感謝您的幫助。 – RSM

回答

0

您需要避開斜槓。下面都會很成功:

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

+1

@RSM在第一次嘗試中,您可以在問題中具體說明問題,以便回答者給出的努力在第一次嘗試中將富有成效。 :) – dmahapatro

+0

即將開始。謝謝 – RSM

0

而是改變URL「/」斜線的,我改變「\」斜線在無論是通過folder.path

然後,我從文件夾中刪除URL返回.path輸出。

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

感謝您的幫助。

相關問題