go - 在指定路径中创建新文件

时间:2016-11-19 21:42:31

标签: go

尝试以可移植的方式在$ 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) 
  } 

但是,这似乎并没有像我希望的那样在数据目录中创建文件。我做错了吗?

2 个答案:

答案 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()