Beispiel #1
0
// ReadDir reads the contents of the directory associated with file and
// returns a slice of FileInfo values in directory order.
func ReadDir(fs webdav.FileSystem, name string) ([]os.FileInfo, error) {
	f, err := fs.OpenFile(context.Background(), name, os.O_RDONLY, 0)
	if err != nil {
		return nil, err
	}
	defer f.Close()
	return f.Readdir(0)
}
Beispiel #2
0
// WriteFile writes data to a file named by name.
// If the file does not exist, WriteFile creates it with permissions perm;
// otherwise WriteFile truncates it before writing.
func WriteFile(fs webdav.FileSystem, name string, data []byte, perm os.FileMode) error {
	f, err := fs.OpenFile(context.Background(), name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
	if err != nil {
		return err
	}
	n, err := f.Write(data)
	if err == nil && n < len(data) {
		err = io.ErrShortWrite
	}
	if err1 := f.Close(); err == nil {
		err = err1
	}
	return err
}
Beispiel #3
0
// Open opens the named file for reading.  If successful, methods on
// the returned file can be used for reading; the associated file
// descriptor has mode O_RDONLY.
// If there is an error, it will be of type *PathError.
func Open(fs webdav.FileSystem, name string) (http.File, error) {
	return fs.OpenFile(context.Background(), name, os.O_RDONLY, 0)
}
Beispiel #4
0
// Create creates the named file with mode 0644 (before umask), truncating
// it if it already exists. If successful, methods on the returned
// File can be used for I/O; the associated file descriptor has mode O_RDWR.
// If there is an error, it will be of type *PathError.
func Create(fs webdav.FileSystem, name string) (webdav.File, error) {
	return fs.OpenFile(context.Background(), name, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
}