Skip to content

Commit

Permalink
vfs: add vfs.WriteFile to match os.WriteFile
Browse files Browse the repository at this point in the history
  • Loading branch information
ncw committed Dec 13, 2024
1 parent c47c94e commit 44c3f5e
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions vfs/vfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -770,6 +770,21 @@ func (vfs *VFS) ReadFile(filename string) (b []byte, err error) {
return io.ReadAll(f)
}

// WriteFile writes data to the named file, creating it if necessary. If the
// file does not exist, WriteFile creates it with permissions perm (before
// umask); otherwise WriteFile truncates it before writing, without changing
// permissions. Since WriteFile requires multiple system calls to complete,
// a failure mid-operation can leave the file in a partially written state.
func (vfs *VFS) WriteFile(name string, data []byte, perm os.FileMode) (err error) {
fh, err := vfs.OpenFile(name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
if err != nil {
return err
}
defer fs.CheckClose(fh, &err)
_, err = fh.Write(data)
return err
}

// AddVirtual adds the object (file or dir) to the directory cache
func (vfs *VFS) AddVirtual(remote string, size int64, isDir bool) (err error) {
remote = strings.TrimRight(remote, "/")
Expand Down

0 comments on commit 44c3f5e

Please sign in to comment.