path.IsAbs的文檔說(shuō)IsAbs報(bào)告路徑是否是絕對(duì)的。我的代碼中有一個(gè)函數(shù)來(lái)檢查第一個(gè)參數(shù)是否是絕對(duì)的,如果不是,它會(huì)創(chuàng)建一個(gè)絕對(duì)路徑。func getPath() string { var dir string fmt.Printf("first arg -> %s and is it abs? %t\n", os.Args[1], path.IsAbs(os.Args[1])) if path.IsAbs(os.Args[1]) { dir = os.Args[1] } else { var currentDir string currentDir = filepath.Dir(os.Args[0]) dir, _ = filepath.Abs(path.Join(currentDir, os.Args[1])) } return dir}輸出是first arg -> C:\Users\Mohammad\Music\Uncategorized\Telegram and is it abs? false但是第一個(gè)論點(diǎn)是絕對(duì)的,那么我在哪里失蹤了?
2 回答

蝴蝶不菲
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
查看此函數(shù)的源代碼,很明顯它只是檢查路徑的第一個(gè)字符是否為/
. 這意味著它采用 UNIX 樣式的路徑,而不是帶有驅(qū)動(dòng)器號(hào)的 Windows 樣式。但是這種行為是設(shè)計(jì)使然,并且也有據(jù)可查。在文檔的開(kāi)頭,它明確地說(shuō):
path 包只能用于由正斜杠分隔的路徑,例如 URL 中的路徑。此軟件包不處理帶有驅(qū)動(dòng)器號(hào)或反斜杠的 Windows 路徑;要操作操作系統(tǒng)路徑,請(qǐng)使用 path/filepath 包。
因此,請(qǐng)遵循文檔并為您的特定用例使用正確的包。

滄海一幻覺(jué)
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
對(duì)于 Windows 操作系統(tǒng),您可以使用
C:\\Users\\Mohammad\\Music\\Uncategorized\\Telegram
或者
C:/Users/Mohammad/Music/Uncategorized/Telegram
他們應(yīng)該在你的情況下完美地工作。
- 2 回答
- 0 關(guān)注
- 167 瀏覽
添加回答
舉報(bào)
0/150
提交
取消