2016-11-19 36 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() 
相關問題