files

package
v0.0.0-...-bafe949 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotDirectory = errors.New("Couln't call NextFile(), this isn't a directory")
	ErrNotReader    = errors.New("This file is a directory, can't use Reader functions")
)

Functions

This section is empty.

Types

type File

type File interface {
	// Files implement ReadCloser, but can only be read from or closed if they are not directories
	io.ReadCloser

	// FileName returns a full filename path associated with this file
	FileName() string

	// IsDirectory returns true if the File is a directory (and therefore supports calling `NextFile`)
	// and false if the File is a normal file (and therefor supports calling `Read` and `Close`)
	IsDirectory() bool

	// NextFile returns the next child file available (if the File is a directory).
	// It will return (nil, io.EOF) if no more files are available.
	// If the file is a regular file (not a directory), NextFile will return a non-nil error.
	NextFile() (File, error)
}

File is an interface that provides functionality for handling files/directories as values that can be supplied to commands. For directories, child files are accessed serially by calling `NextFile()`.

func NewFileFromPart

func NewFileFromPart(part *multipart.Part) (File, error)

func NewSerialFile

func NewSerialFile(path string, file *os.File) (File, error)

type MultipartFile

type MultipartFile struct {
	File

	Part      *multipart.Part
	Reader    *multipart.Reader
	Mediatype string
}

MultipartFile implements File, and is created from a `multipart.Part`. It can be either a directory or file (checked by calling `IsDirectory()`).

func (*MultipartFile) Close

func (f *MultipartFile) Close() error

func (*MultipartFile) FileName

func (f *MultipartFile) FileName() string

func (*MultipartFile) IsDirectory

func (f *MultipartFile) IsDirectory() bool

func (*MultipartFile) NextFile

func (f *MultipartFile) NextFile() (File, error)

func (*MultipartFile) Read

func (f *MultipartFile) Read(p []byte) (int, error)

type PeekFile

type PeekFile interface {
	SizeFile

	Peek(n int) File
	Length() int
}

type ReaderFile

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

ReaderFile is a implementation of File created from an `io.Reader`. ReaderFiles are never directories, and can be read from and closed.

func NewReaderFile

func NewReaderFile(filename string, reader io.ReadCloser, stat os.FileInfo) *ReaderFile

func (*ReaderFile) Close

func (f *ReaderFile) Close() error

func (*ReaderFile) FileName

func (f *ReaderFile) FileName() string

func (*ReaderFile) IsDirectory

func (f *ReaderFile) IsDirectory() bool

func (*ReaderFile) NextFile

func (f *ReaderFile) NextFile() (File, error)

func (*ReaderFile) Read

func (f *ReaderFile) Read(p []byte) (int, error)

func (*ReaderFile) Size

func (f *ReaderFile) Size() (int64, error)

func (*ReaderFile) Stat

func (f *ReaderFile) Stat() os.FileInfo

type SizeFile

type SizeFile interface {
	File

	Size() (int64, error)
}

type SliceFile

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

SliceFile implements File, and provides simple directory handling. It contains children files, and is created from a `[]File`. SliceFiles are always directories, and can't be read from or closed.

func NewSliceFile

func NewSliceFile(filename string, files []File) *SliceFile

func (*SliceFile) Close

func (f *SliceFile) Close() error

func (*SliceFile) FileName

func (f *SliceFile) FileName() string

func (*SliceFile) IsDirectory

func (f *SliceFile) IsDirectory() bool

func (*SliceFile) Length

func (f *SliceFile) Length() int

func (*SliceFile) NextFile

func (f *SliceFile) NextFile() (File, error)

func (*SliceFile) Peek

func (f *SliceFile) Peek(n int) File

func (*SliceFile) Read

func (f *SliceFile) Read(p []byte) (int, error)

func (*SliceFile) Size

func (f *SliceFile) Size() (int64, error)

type StatFile

type StatFile interface {
	File

	Stat() os.FileInfo
}

Jump to

Keyboard shortcuts

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