目录


今天在写代码遇到一个问题,如下代码所示

遇到问题

func Exists() {
	getwd, _ := os.Getwd()
	fmt.Println(getwd)
	_, err := os.Stat(getwd) //os.Stat获取文件信息
	fmt.Println(err) // <nil>
	
	fmt.Println(os.IsExist(err)) // false
	fmt.Println(os.IsNotExist(err)) // false

	_, err1 := os.Stat("/Users/qxqzx/GoWork/src/go-exam/runtime/logs2") //这个文件夹不存在
	fmt.Println(os.IsExist(err1)) // false
	fmt.Println(os.IsNotExist(err1)) // true

	// 打印结果
	///Users/qxqzx/GoWork/src/go-exam
	//false
	//false
	//false
	//true
}
os.Stat()os.IsExist(err)os.IsNotExist(err)err == nilerr != nilos.IsNotExist(err)os.IsExist(err)

科学的判断方式

os.Stat()
os.IsNotExist()os.IsExist()
// 判断所给路径文件/文件夹是否存在1
func Exists(path string) bool {
	_, err := os.Stat(path)    //os.Stat获取文件信息
	if err != nil {
		if os.IsExist(err) {
			return true
		}
		return false
	}
	return true
}

// 判断所给路径文件/文件夹是否存在2
func Exists(path string) bool {
	_, err := os.Stat(path)    //os.Stat获取文件信息
	if err != nil {
		if os.IsNotExist(err) {
			return false
		}
		return true
	}
	return true
}


// 判断所给路径文件/文件夹是否存在3  直接用os.IsNotExist(err)
func Exists(path string) bool {
	_, err := os.Stat(path)    //os.Stat获取文件信息
	if os.IsNotExist(err) {
		return false
	}
	return true
}