2016-11-19 35 views
0

试图在我的$ GOPATH中的指定目录中创建一个可移植的方法来创建文件。go - 在指定路径中创建一个新文件

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) 
    } 

但是,这似乎并不像我所希望的那样在数据目录中创建文件。难道我做错了什么?

回答

1

Open()不会创建该文件。改为尝试Create()

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() 
相关问题