尝试以可移植的方式在$ GOPATH中的指定目录中创建文件。
var FileName string = "Foci.db"
var Driver string = "sqlite3"
func Connect(fileName string) (*sql.DB, error) {
filePath, _ := filepath.Abs("../data/" + FileName)
// Create db if it doesn't exist
os.Open(filePath)
// Open existing db
return sql.Open(Driver, filePath)
}
但是,这似乎并没有像我希望的那样在数据目录中创建文件。我做错了吗?
答案 0 :(得分:2)
您可能希望使用os.OpenFile
正如其他海报所提到的,您可以在创建后使用Create()
然后Open()
。
如果你需要高特异性,os.OpenFile
可能很有用,因为它允许你一次性设置路径,标志(只读,只写等)和权限。
例如
f, err := os.OpenFile(filepath, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
//handle error
}
defer f.Close()
答案 1 :(得分:1)
Open()
不会创建该文件。请改为Create()
。