我正在嘗試檢查windows我的 golang 應(yīng)用程序中的目錄。這是我的代碼func createWalletDirectory(path string) (err error) { _, err = os.Stat(path) if os.IsNotExist(err) { return err } path = filepath.FromSlash(path) path = path + string(os.PathSeparator) + DirectoryName err = os.Mkdir(path, 0666) return}所以在函數(shù)的第一行我得到一個(gè)錯(cuò)誤看起來(lái)像這樣字符串轉(zhuǎn)義碼中的無(wú)效字符“i”示例路徑:C:\Users注意:我通過(guò) POST 請(qǐng)求從用戶那里獲得的路徑所以我需要編寫一個(gè)代碼來(lái)檢查跨平臺(tái)路徑。我該如何解決這個(gè)錯(cuò)誤?
2 回答

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用path
package 來(lái)處理 urls(' path/filepath
' 用于文件路徑),這也有助于平臺(tái)獨(dú)立性。所以您可以執(zhí)行以下操作來(lái)創(chuàng)建路徑
givenPath = filepath.Join(DirectoryName, path)
還有另一種方法可以做到這一點(diǎn)
path := strings.Join([]string{DirectoryName, path}, string(os.PathSeparator))

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
在用雙引號(hào)括起來(lái)的 Go 字符串中,反斜杠開始轉(zhuǎn)義碼,例如\n
or?\u2318
。為避免這種情況,您有兩種選擇:
使用雙反斜杠 (?
\\
),例如"C:\\Users"
使用反引號(hào) (?
`
) 而不是雙引號(hào)來(lái)定義“原始字符串”,例如`C:\Users`
- 2 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報(bào)
0/150
提交
取消