2017-02-15 67 views
0
full path: views/admin/users.html 
trim set (views): /admin/users.html 
trim set (views/): admin/users.html 

full path: views/index.html 
trim set (views): /index.html 
trim set (views/): ndex.html 

繼承人我的代碼:strings.Trim被去掉字母 「i」(golang)

err := filepath.Walk("./views", func(path string, info os.FileInfo, err error) error { 
     if strings.Contains(path, ".html") { 
      bytes, err := ioutil.ReadFile(path) 
      if err != nil { 
       panic(err) 
      } 
      fmt.Println("full path:", path) 
      fmt.Println("trim set (views):", strings.Trim(path, "views")) 
      fmt.Println("trim set (views/):", strings.Trim(path, "views/")) 
     } 
    } 

難道我失去了我的心?正斜槓與此有關嗎?如果你知道,請解釋發生了什麼事。

+3

「微調返回的字符串s包含在割刪除了所有開頭和結尾的Unicode代碼點一杯羹。」 – sberry

+2

也許你想'TrimPrefix' – sberry

+0

謝謝!顯然我需要睡一覺。 –

回答

6

strings.Trim()的第二個參數是'cutset',也就是從字符串中移除的一組符,'i'就是其中之一。

要返回路徑的最後一個元素,請使用path.Dir()

0

您也可以使用strings.Replace

fmt.Println("full path:", path) 
fmt.Println("trim set (views):", strings.Replace(path, "views", "", -1)) 
fmt.Println("trim set (views/):", strings.Replace(path, "views/", "", -1)) 

結果:

full path: views/index.html 
trim set (views): /index.html 
trim set (views/): index.html