3 回答

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
os.Mkdir
用于創(chuàng)建單個目錄。要創(chuàng)建文件夾路徑,請嘗試使用:
os.MkdirAll(folderPath, os.ModePerm)
Go 文檔
func MkdirAll(path string, perm FileMode) 錯誤
MkdirAll 創(chuàng)建一個名為 path 的目錄以及任何必要的父目錄,并返回 nil,否則返回錯誤。權(quán)限位 perm 用于 MkdirAll 創(chuàng)建的所有目錄。如果 path 已經(jīng)是一個目錄,則 MkdirAll 什么都不做并返回 nil。
編輯:
更新為正確使用os.ModePerm
。
對于文件路徑的串聯(lián),請使用path/filepath
@Chris 的回答中所述的包。

TA貢獻(xiàn)1841條經(jīng)驗 獲得超3個贊
這樣您就不必使用任何幻數(shù):
os.MkdirAll(newPath, os.ModePerm)
此外,您可以使用:
import "path/filepath" path := filepath.Join(someRootPath, someSubPath)
以上在每個平臺上自動為您使用正確的分隔符。

TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊
可以使用如下實用方法來解決此問題。
import (
"os"
"path/filepath"
"log"
)
func ensureDir(fileName string) {
dirName := filepath.Dir(fileName)
if _, serr := os.Stat(dirName); serr != nil {
merr := os.MkdirAll(dirName, os.ModePerm)
if merr != nil {
panic(merr)
}
}
}
func main() {
_, cerr := os.Create("a/b/c/d.txt")
if cerr != nil {
log.Fatal("error creating a/b/c", cerr)
}
log.Println("created file in a sub-directory.")
}
- 3 回答
- 0 關(guān)注
- 216 瀏覽
添加回答
舉報