我正在学习golang (初学者),我已经在谷歌和stackoverflow上搜索过了,但是我找不到答案,所以请原谅我已经问过了,但是如果在golang中没有mkdir,我如何才能找到答案。
例如,在节点I中,将fs-extra与函数ensureDirSync一起使用(当然,如果阻塞不是问题)
fs.ensureDir("./public");发布于 2019-06-14 22:54:10
这是实现相同目标的一种替代方案,但它避免了由于具有两个不同的"check ..and.. create“操作而导致的竞争条件。
package main
import (
"fmt"
"os"
)
func main() {
if err := ensureDir("/test-dir"); err != nil {
fmt.Println("Directory creation failed with error: " + err.Error())
os.Exit(1)
}
// Proceed forward
}
func ensureDir(dirName string) error {
err := os.Mkdir(dirName, os.ModeDir)
if err == nil {
return nil
}
if os.IsExist(err) {
// check that the existing path is a directory
info, err := os.Stat(dirName)
if err != nil {
return err
}
if !info.IsDir() {
return errors.New("path exists but is not a directory")
}
return nil
}
return err
}发布于 2020-07-15 08:34:17
所以我发现对我有用的是:
//Get the base file dir
path, err := os.Getwd()
if err != nil {
log.Println("error msg", err)
}
//Create output path
outPath:= filepath.Join(path, "output")
//Create dir output using above code
if _, err := os.Stat(outPath); os.IsNotExist(err) {
os.Mkdir(outPath, 0755)
}我喜欢它的便携性。
https://stackoverflow.com/questions/37932551
复制相似问题