fileutil

package
v0.113.0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultDirectoryMask = 0o755
)

Variables

View Source
var (
	ErrNotFile      = errors.New("path is not a file")
	ErrBadPath      = errors.New("bad path traversal blocked")
	ErrSymbolicLink = errors.New("symbolic links not supported")
	ErrInvalidPath  = errors.New("invalid path")
)

Functions

func FileExists added in v0.106.0

func FileExists(p string) (bool, error)

func FindInParents added in v0.105.0

func FindInParents(dir, filename string) (string, error)

FindInParents Returns the first occurrence of filename going up the dir tree

func IsDir added in v0.105.0

func IsDir(p string) (bool, error)

IsDir Returns true if p is a directory, otherwise false

func IsDirEmpty added in v0.106.0

func IsDirEmpty(dir string) (bool, error)

func PruneEmptyDirectories added in v0.106.0

func PruneEmptyDirectories(dir string) ([]string, error)

PruneEmptyDirectories iterates through the directory tree, removing empty directories, and directories that only contain empty directories.

func RemoveFile added in v0.106.0

func RemoveFile(p string) error

func VerifyAbsPath added in v0.106.0

func VerifyAbsPath(absPath, basePath string) error

func VerifyRelPath added in v0.106.0

func VerifyRelPath(relPath, basePath string) error

func VerifySafeFilename added in v0.106.0

func VerifySafeFilename(absPath string) error

VerifySafeFilename checks that the given file name is not a symbolic link and that the file name does not contain path traversal

Types

type RewindableReader

type RewindableReader interface {
	io.ReadSeeker
	// Rewind allows sets RewindableReader to start re-reading the same data.
	Rewind() error
	// Name returns a user-visible name for underlying storage.  It may help debug some issues.
	Name() string
}

RewindableReader allows repeatedly reading the same stream.

type WriterThenReader

type WriterThenReader interface {
	io.Writer
	// StartReading stops writing and returns a RewindableReader that will allow repeatedly
	// reading the data and the total length of data.  The WriterThenReader should be
	// discarded; calls to Write() after StartReading() will fail.
	StartReading() (RewindableReader, int64, error)
	// Name returns a user-visible name for underlying storage.  It may help debug some issues.
	Name() string
}

WriterThenReader writes data to storage, then allows reading it. It is suitable for repeatedly processing large volumes of data.

func NewFileWriterThenReader

func NewFileWriterThenReader(basename string) (WriterThenReader, error)

Jump to

Keyboard shortcuts

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