fileutil

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2018 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package fileutil provides utility methods used when dealing with the filesystem in tsdb. It is largely copied from github.com/coreos/etcd/pkg/fileutil to avoid the dependency chain it brings with it. Please check github.com/coreos/etcd for licensing information.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CopyDirs

func CopyDirs(src, dest string) error

CopyDirs copies all directories, subdirectories and files recursively including the empty folders. Source and destination must be full paths.

func Fdatasync

func Fdatasync(f *os.File) error

Fdatasync is similar to fsync(), but does not flush modified metadata unless that metadata is needed in order to allow a subsequent data retrieval to be correctly handled.

func Fsync

func Fsync(f *os.File) error

Fsync is a wrapper around file.Sync(). Special handling is needed on darwin platform.

func OpenDir

func OpenDir(path string) (*os.File, error)

OpenDir opens a directory for syncing.

func Preallocate

func Preallocate(f *os.File, sizeInBytes int64, extendFile bool) error

Preallocate tries to allocate the space for given file. This operation is only supported on linux by a few filesystems (btrfs, ext4, etc.). If the operation is unsupported, no error will be returned. Otherwise, the error encountered will be returned.

func ReadDir

func ReadDir(dirpath string) ([]string, error)

ReadDir returns the filenames in the given directory in sorted order.

func Rename

func Rename(from, to string) error

Rename safely renames a file.

func Replace

func Replace(from, to string) error

Replace moves a file or directory to a new location and deletes any previous data. It is not atomic.

Types

type MmapFile

type MmapFile struct {
	// contains filtered or unexported fields
}

func OpenMmapFile

func OpenMmapFile(path string) (*MmapFile, error)

func (*MmapFile) Bytes

func (f *MmapFile) Bytes() []byte

func (*MmapFile) Close

func (f *MmapFile) Close() error

func (*MmapFile) File

func (f *MmapFile) File() *os.File

type Releaser

type Releaser interface {
	Release() error
}

Releaser provides the Release method to release a file lock.

func Flock

func Flock(fileName string) (r Releaser, existed bool, err error)

Flock locks the file with the provided name. If the file does not exist, it is created. The returned Releaser is used to release the lock. existed is true if the file to lock already existed. A non-nil error is returned if the locking has failed. Neither this function nor the returned Releaser is goroutine-safe.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL