code: func OpenFile(path string, o *opt.Options) (db *DB, err error) {
  	stor, err := storage.OpenFile(path, o.GetReadOnly())
  	if err != nil {
  		return
  	}
  	db, err = Open(stor, o)
  	if err != nil {
  		stor.Close()
  	} else {
  		db.closer = stor
  	}
  	return
  }
docs: // OpenFile opens or creates a DB for the given path.
  // The DB will be created if not exist, unless ErrorIfMissing is true.
  // Also, if ErrorIfExist is true and the DB exist OpenFile will returns
  // os.ErrExist error.
  //
  // OpenFile uses standard file-system backed storage implementation as
  // described in the leveldb/storage package.
  //
  // OpenFile will return an error with type of ErrCorrupted if corruption
  // detected in the DB. Use errors.IsCorrupted to test whether an error is
  // due to corruption. Corrupted DB can be recovered with Recover function.
  //
  // The returned DB instance is safe for concurrent use.
  // The DB must be closed after use, by calling Close method.