afero

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2024 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const BADFD = syscall.EBADF
View Source
const FilePathSeparator = string(filepath.Separator)

FilePathSeparator 是文件路径分隔符,由 os.Separator 定义。

Variables

View Source
var (
	ErrFileClosed        = errors.New("文件已关闭")
	ErrOutOfRange        = errors.New("超出范围")
	ErrTooLarge          = errors.New("文件太大")
	ErrFileNotFound      = os.ErrNotExist // 文件不存在
	ErrFileExists        = os.ErrExist    // 文件已存在
	ErrDestinationExists = os.ErrExist    // 目标已存在
)

常见错误定义

View Source
var ErrNoReadlink = errors.New("readlink not supported")

ErrNoReadlink 是当文件系统不支持读取符号链接操作时,会在 os.PathError 中包装的错误。 通过支持 LinkReader 接口表达。

View Source
var ErrNoSymlink = errors.New("symlink not supported")

ErrNoSymlink 是当文件系统不支持符号链接时,会在 os.LinkError 中包装的错误。 通过支持 Linker 接口表达。

Functions

func DirExists

func DirExists(fs Afero, path string) (bool, error)

DirExists 检查路径是否存在并且是一个目录。 参数:

  • fs: Afero 文件系统
  • path: string 路径

返回值:

  • bool: 是否存在并且是目录
  • error: 错误信息

func Exists

func Exists(fs Afero, path string) (bool, error)

Exists 检查文件或目录是否存在。 参数:

  • fs: Afero 文件系统
  • path: string 路径

返回值:

  • bool: 是否存在
  • error: 错误信息

func FileContainsAnyBytes

func FileContainsAnyBytes(fs Afero, filename string, subslices [][]byte) (bool, error)

FileContainsAnyBytes 检查文件是否包含任意一个指定的字节切片 参数:

  • fs: Afero 文件系统
  • filename: string 文件名
  • subslices: [][]byte 字节切片数组

返回值:

  • bool: 是否包含
  • error: 错误信息

func FileContainsBytes

func FileContainsBytes(fs Afero, filename string, subslice []byte) (bool, error)

FileContainsBytes 检查文件是否包含指定的字节切片 参数:

  • fs: Afero 文件系统
  • filename: string 文件名
  • subslice: []byte 字节切片

返回值:

  • bool: 是否包含
  • error: 错误信息

func FullBaseFsPath

func FullBaseFsPath(basePathFs *BasePathFs, relativePath string) string

FullBaseFsPath 获取完整的基础文件系统路径。 参数:

  • basePathFs: *BasePathFs 基础路径文件系统
  • relativePath: string 相对路径

返回值:

  • string: 完整路径

func GetTempDir

func GetTempDir(fs Afero, subPath string) string

GetTempDir 返回默认的临时目录,并带有尾部斜杠 如果 subPath 不为空,则递归创建该路径,权限为 777 (rwx rwx rwx) 参数:

  • fs: Afero 文件系统
  • subPath: string 子路径

返回值:

  • string: 临时目录路径

func Glob

func Glob(fs Afero, pattern string) (matches []string, err error)

Glob 返回所有与模式匹配的文件名,如果没有匹配的文件则返回 nil。 模式的语法与 Match 中的相同。模式可以描述分层名称,例如 /usr/*/bin/ed (假设路径分隔符是 '/')。

Glob 忽略读取目录时的文件系统错误,如 I/O 错误。 唯一可能返回的错误是 ErrBadPattern,当模式格式错误时。

该函数改编自 http://golang.org/pkg/path/filepath 并使用了该包中的多个内建函数。

func IsDir

func IsDir(fs Afero, path string) (bool, error)

IsDir 检查给定路径是否是目录。 参数:

  • fs: Afero 文件系统
  • path: string 路径

返回值:

  • bool: 是否是目录
  • error: 错误信息

func IsEmpty

func IsEmpty(fs Afero, path string) (bool, error)

IsEmpty 检查给定文件或目录是否为空。 参数:

  • fs: Afero 文件系统
  • path: string 路径

返回值:

  • bool: 是否为空
  • error: 错误信息

func ListFileNamesRecursively added in v1.0.0

func ListFileNamesRecursively(fs Afero, rootDir string) ([]string, error)

ListFileNamesRecursively 列出指定目录及其所有子目录中的文件名 参数:

  • fs: Afero 文件系统
  • rootDir: string 根目录路径

返回值:

  • []string: 文件名列表
  • error: 错误信息

func NeuterAccents

func NeuterAccents(s string) string

NeuterAccents 转换带有重音符号的字符为普通形式 参数:

  • s: string 输入字符串

返回值:

  • string: 转换后的字符串

func ReadAll

func ReadAll(r io.Reader) ([]byte, error)

ReadAll 从 r 读取直到遇到错误或 EOF,并返回读取的数据 参数:

  • r: io.Reader 读取器

返回值:

  • []byte: 读取的数据
  • error: 错误信息

func ReadDir

func ReadDir(fs Afero, dirname string) ([]os.FileInfo, error)

ReadDir 读取指定目录的内容并返回排序后的目录条目列表 参数:

  • fs: Afero 文件系统
  • dirname: string 目录名

返回值:

  • []os.FileInfo: 目录条目列表
  • error: 错误信息

func ReadFile

func ReadFile(fs Afero, filename string) ([]byte, error)

ReadFile 读取指定文件的内容并返回 参数:

  • fs: Afero 文件系统
  • filename: string 文件名

返回值:

  • []byte: 文件内容
  • error: 错误信息

func SafeWriteReader

func SafeWriteReader(fs Afero, path string, r io.Reader) (err error)

SafeWriteReader 将读取器的内容安全地写入文件,检查文件是否已存在 参数:

  • fs: Afero 文件系统
  • path: string 文件路径
  • r: io.Reader 读取器

返回值:

  • error: 错误信息

func TempDir

func TempDir(fs Afero, dir, prefix string) (name string, err error)

TempDir 在指定目录中创建一个新的临时目录 参数:

  • fs: Afero 文件系统
  • dir: string 目录路径
  • prefix: string 目录名前缀

返回值:

  • string: 目录路径
  • error: 错误信息

func UnicodeSanitize

func UnicodeSanitize(s string) string

UnicodeSanitize 清理字符串,移除非标准路径字符 参数:

  • s: string 输入字符串

返回值:

  • string: 清理后的字符串

func Walk

func Walk(fs Afero, root string, walkFn filepath.WalkFunc) error

Walk 遍历根目录为 root 的文件树,调用 walkFn 函数处理树中的每个文件或目录,包括根目录。 参数:

  • fs: Afero 文件系统
  • root: string 根目录
  • walkFn: filepath.WalkFunc 处理函数

返回值:

  • error: 错误信息

func WriteFile

func WriteFile(fs Afero, filename string, data []byte, perm os.FileMode) error

WriteFile 将数据写入指定名称的文件 参数:

  • fs: Afero 文件系统
  • filename: string 文件名
  • data: []byte 数据
  • perm: os.FileMode 文件权限

返回值:

  • error: 错误信息

func WriteReader

func WriteReader(fs Afero, path string, r io.Reader) (err error)

WriteReader 将读取器的内容写入文件 参数:

  • fs: Afero 文件系统
  • path: string 文件路径
  • r: io.Reader 读取器

返回值:

  • error: 错误信息

Types

type Afero

type Afero interface {
	// Create 在文件系统中创建一个文件,返回文件和错误信息(如果有)
	Create(name string) (File, error)

	// Mkdir 在文件系统中创建一个目录,如果有错误则返回错误信息
	Mkdir(name string, perm os.FileMode) error

	// MkdirAll 创建一个目录路径及所有不存在的父目录
	MkdirAll(path string, perm os.FileMode) error

	// Open 打开一个文件,返回文件或错误信息(如果有)
	Open(name string) (File, error)

	// OpenFile 使用给定的标志和模式打开一个文件
	OpenFile(name string, flag int, perm os.FileMode) (File, error)

	// Remove 删除一个文件,通过名称标识,返回错误信息(如果有)
	Remove(name string) error

	// RemoveAll 删除一个目录路径及其包含的任何子目录。如果路径不存在,则不返回错误(返回nil)
	RemoveAll(path string) error

	// Rename 重命名一个文件
	Rename(oldname, newname string) error

	// Stat 返回描述指定文件的 FileInfo 或错误信息(如果有)
	Stat(name string) (os.FileInfo, error)

	// 返回此文件系统的名称
	Name() string

	// Chmod 更改指定文件的模式
	Chmod(name string, mode os.FileMode) error

	// Chown 更改指定文件的 uid 和 gid
	Chown(name string, uid, gid int) error

	// Chtimes 更改指定文件的访问和修改时间
	Chtimes(name string, atime time.Time, mtime time.Time) error
}

Afero 是文件系统接口

任何模拟或真实的文件系统都应实现此接口

func NewBasePathFs

func NewBasePathFs(source Afero, path string) Afero

NewBasePathFs 创建一个新的 BasePathFs 参数:

  • source: Fs 基础文件系统
  • path: string 基本路径

返回值:

  • Fs: 新的 BasePathFs

func NewCacheOnReadFs

func NewCacheOnReadFs(base Afero, layer Afero, cacheTime time.Duration) Afero

NewCacheOnReadFs 创建一个新的 CacheOnReadFs 参数:

  • base: Fs 基础文件系统
  • layer: Fs 缓存层文件系统
  • cacheTime: time.Duration 缓存时间

返回值:

  • Fs: 新的 CacheOnReadFs

func NewCopyOnWriteFs

func NewCopyOnWriteFs(base Afero, layer Afero) Afero

NewCopyOnWriteFs 创建一个新的 CopyOnWriteFs 参数:

  • base: Afero 基础文件系统
  • layer: Afero 覆盖层文件系统

返回值:

  • Afero: 新的 CopyOnWriteFs

func NewMemMapFs

func NewMemMapFs() Afero

NewMemMapFs 创建一个新的内存映射文件系统 返回值:

  • Afero: 内存映射文件系统

func NewOsFs

func NewOsFs() Afero

NewOsFs 创建一个新的 OsFs 实例 返回值:

  • Afero: 新的 OsFs 实例

func NewReadOnlyFs

func NewReadOnlyFs(source Afero) Afero

NewReadOnlyFs 创建一个新的只读文件系统 参数:

  • source: Fs 实际文件系统

返回值:

  • Fs: 只读文件系统

func NewRegexpFs

func NewRegexpFs(source Afero, re *regexp.Regexp) Afero

NewRegexpFs 创建一个新的 RegexpFs 参数:

  • source: Fs 源文件系统
  • re: *regexp.Regexp 正则表达式

返回值:

  • Fs: 过滤后的文件系统

type BasePathFile

type BasePathFile struct {
	File
	// contains filtered or unexported fields
}

BasePathFile 表示文件系统中的文件

func (*BasePathFile) Name

func (f *BasePathFile) Name() string

Name 返回文件的名称,去除基本路径部分

func (*BasePathFile) ReadDir

func (f *BasePathFile) ReadDir(n int) ([]fs.DirEntry, error)

ReadDir 读取目录中的内容 参数:

  • n: int 读取目录中的条目数

返回值:

  • []fs.DirEntry: 目录条目列表
  • error: 错误信息

type BasePathFs

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

BasePathFs 限制所有操作到一个给定的路径内。 传递给该文件系统的文件名将在调用基础文件系统之前添加基本路径。 任何在基本路径外的文件名(在 filepath.Clean() 之后)将被视为不存在的文件。

注意,它不会清理返回的错误消息,因此错误可能会暴露真实路径。

func (*BasePathFs) Chmod

func (b *BasePathFs) Chmod(name string, mode os.FileMode) (err error)

Chmod 更改指定文件的模式 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (*BasePathFs) Chown

func (b *BasePathFs) Chown(name string, uid, gid int) (err error)

Chown 更改指定文件的 uid 和 gid 参数:

  • name: string 文件名
  • uid: int 用户ID
  • gid: int 组ID

返回值:

  • error: 错误信息

func (*BasePathFs) Chtimes

func (b *BasePathFs) Chtimes(name string, atime, mtime time.Time) (err error)

Chtimes 更改指定文件的访问和修改时间 参数:

  • name: string 文件名
  • atime: time.Time 访问时间
  • mtime: time.Time 修改时间

返回值:

  • error: 错误信息

func (*BasePathFs) Create

func (b *BasePathFs) Create(name string) (f File, err error)

Create 创建一个新文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*BasePathFs) LstatIfPossible

func (b *BasePathFs) LstatIfPossible(name string) (os.FileInfo, bool, error)

LstatIfPossible 返回文件信息和一个布尔值,指示是否使用了 Lstat 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • bool: 是否使用了 Lstat
  • error: 错误信息

func (*BasePathFs) Mkdir

func (b *BasePathFs) Mkdir(name string, mode os.FileMode) (err error)

Mkdir 创建指定目录 参数:

  • name: string 目录名
  • mode: os.FileMode 目录模式

返回值:

  • error: 错误信息

func (*BasePathFs) MkdirAll

func (b *BasePathFs) MkdirAll(name string, mode os.FileMode) (err error)

MkdirAll 创建指定路径及其所有父目录 参数:

  • name: string 路径名
  • mode: os.FileMode 目录模式

返回值:

  • error: 错误信息

func (*BasePathFs) Name

func (b *BasePathFs) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (*BasePathFs) Open

func (b *BasePathFs) Open(name string) (f File, err error)

Open 打开指定文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*BasePathFs) OpenFile

func (b *BasePathFs) OpenFile(name string, flag int, mode os.FileMode) (f File, err error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 打开标志
  • mode: os.FileMode 文件模式

返回值:

  • File: 文件对象
  • error: 错误信息

func (*BasePathFs) ReadlinkIfPossible

func (b *BasePathFs) ReadlinkIfPossible(name string) (string, error)

ReadlinkIfPossible 读取符号链接(如果可能) 参数:

  • name: string 文件名

返回值:

  • string: 符号链接路径
  • error: 错误信息

func (*BasePathFs) RealPath

func (b *BasePathFs) RealPath(name string) (path string, err error)

RealPath 返回文件的真实路径,如果文件在基本路径外,则返回错误 参数:

  • name: string 文件名

返回值:

  • string: 真实路径
  • error: 错误信息

func (*BasePathFs) Remove

func (b *BasePathFs) Remove(name string) (err error)

Remove 删除指定文件 参数:

  • name: string 文件名

返回值:

  • error: 错误信息

func (*BasePathFs) RemoveAll

func (b *BasePathFs) RemoveAll(name string) (err error)

RemoveAll 删除指定路径及其包含的所有子目录 参数:

  • name: string 路径名

返回值:

  • error: 错误信息

func (*BasePathFs) Rename

func (b *BasePathFs) Rename(oldname, newname string) (err error)

Rename 重命名文件 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

func (*BasePathFs) Stat

func (b *BasePathFs) Stat(name string) (fi os.FileInfo, err error)

Stat 返回指定文件的文件信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

func (*BasePathFs) SymlinkIfPossible

func (b *BasePathFs) SymlinkIfPossible(oldname, newname string) error

SymlinkIfPossible 创建符号链接(如果可能) 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

type CacheOnReadFs

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

此缓存联合将所有写调用也转发到基础文件系统。 为防止写入基础文件系统,请将其包装在只读过滤器中。 注意:这也会使覆盖层变为只读,要在覆盖层中写入文件,请直接使用覆盖文件系统,而不是通过联合文件系统。

func (*CacheOnReadFs) Chmod

func (u *CacheOnReadFs) Chmod(name string, mode os.FileMode) error

Chmod 更改指定文件的模式 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (*CacheOnReadFs) Chown

func (u *CacheOnReadFs) Chown(name string, uid, gid int) error

Chown 更改指定文件的 uid 和 gid 参数:

  • name: string 文件名
  • uid: int 用户ID
  • gid: int 组ID

返回值:

  • error: 错误信息

func (*CacheOnReadFs) Chtimes

func (u *CacheOnReadFs) Chtimes(name string, atime, mtime time.Time) error

Chtimes 更改指定文件的访问和修改时间 参数:

  • name: string 文件名
  • atime: time.Time 访问时间
  • mtime: time.Time 修改时间

返回值:

  • error: 错误信息

func (*CacheOnReadFs) Create

func (u *CacheOnReadFs) Create(name string) (File, error)

Create 创建一个新文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*CacheOnReadFs) Mkdir

func (u *CacheOnReadFs) Mkdir(name string, perm os.FileMode) error

Mkdir 创建指定目录 参数:

  • name: string 目录名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*CacheOnReadFs) MkdirAll

func (u *CacheOnReadFs) MkdirAll(name string, perm os.FileMode) error

MkdirAll 创建指定路径及其所有父目录 参数:

  • name: string 路径名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*CacheOnReadFs) Name

func (u *CacheOnReadFs) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (*CacheOnReadFs) Open

func (u *CacheOnReadFs) Open(name string) (File, error)

Open 打开指定文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*CacheOnReadFs) OpenFile

func (u *CacheOnReadFs) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 文件标志
  • perm: os.FileMode 文件模式

返回值:

  • File: 文件对象
  • error: 错误信息

func (*CacheOnReadFs) Remove

func (u *CacheOnReadFs) Remove(name string) error

Remove 删除指定文件 参数:

  • name: string 文件名

返回值:

  • error: 错误信息

func (*CacheOnReadFs) RemoveAll

func (u *CacheOnReadFs) RemoveAll(name string) error

RemoveAll 删除指定路径及其包含的所有子目录 参数:

  • name: string 路径名

返回值:

  • error: 错误信息

func (*CacheOnReadFs) Rename

func (u *CacheOnReadFs) Rename(oldname, newname string) error

Rename 重命名文件 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

func (*CacheOnReadFs) Stat

func (u *CacheOnReadFs) Stat(name string) (os.FileInfo, error)

Stat 返回指定文件的文件信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

type CopyOnWriteFs

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

CopyOnWriteFs 是一个联合文件系统:一个只读的基础文件系统, 在其上可能有一个可写的层。对文件系统的更改只会在覆盖层中进行: 更改基础层中存在但覆盖层中不存在的文件会将文件复制到覆盖层 (“更改”包括调用例如 Chtimes()、Chmod() 和 Chown() 等函数)。

读取目录当前仅通过 Open() 支持,而不是 OpenFile()。

func (*CopyOnWriteFs) Chmod

func (u *CopyOnWriteFs) Chmod(name string, mode os.FileMode) error

Chmod 更改指定文件的模式 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (*CopyOnWriteFs) Chown

func (u *CopyOnWriteFs) Chown(name string, uid, gid int) error

Chown 更改指定文件的 uid 和 gid 参数:

  • name: string 文件名
  • uid: int 用户ID
  • gid: int 组ID

返回值:

  • error: 错误信息

func (*CopyOnWriteFs) Chtimes

func (u *CopyOnWriteFs) Chtimes(name string, atime, mtime time.Time) error

Chtimes 更改指定文件的访问和修改时间 参数:

  • name: string 文件名
  • atime: time.Time 访问时间
  • mtime: time.Time 修改时间

返回值:

  • error: 错误信息

func (*CopyOnWriteFs) Create

func (u *CopyOnWriteFs) Create(name string) (File, error)

Create 创建新文件。 参数:

  • name: string 文件名。

返回值:

  • File: 新创建的文件。
  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) LstatIfPossible

func (u *CopyOnWriteFs) LstatIfPossible(name string) (os.FileInfo, bool, error)

LstatIfPossible 返回文件的信息和一个布尔值,指示是否使用了 Lstat 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • bool: 是否使用了 Lstat
  • error: 错误信息

func (*CopyOnWriteFs) Mkdir

func (u *CopyOnWriteFs) Mkdir(name string, perm os.FileMode) error

Mkdir 创建目录。 参数:

  • name: string 目录名。
  • perm: os.FileMode 目录权限。

返回值:

  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) MkdirAll

func (u *CopyOnWriteFs) MkdirAll(name string, perm os.FileMode) error

MkdirAll 创建目录及其所有父目录。 参数:

  • name: string 目录名。
  • perm: os.FileMode 目录权限。

返回值:

  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) Name

func (u *CopyOnWriteFs) Name() string

Name 返回文件系统的名称。 返回值:

  • string: 文件系统名称。

func (*CopyOnWriteFs) Open

func (u *CopyOnWriteFs) Open(name string) (File, error)

Open 打开文件或目录。 参数:

  • name: string 文件或目录名。

返回值:

  • File: 打开的文件或目录。
  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) OpenFile

func (u *CopyOnWriteFs) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件。如果文件存在于基础层且需要写操作,则复制到覆盖层。 参数:

  • name: string 文件名。
  • flag: int 打开文件的标志。
  • perm: os.FileMode 文件权限。

返回值:

  • File: 打开的文件。
  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) ReadlinkIfPossible

func (u *CopyOnWriteFs) ReadlinkIfPossible(name string) (string, error)

ReadlinkIfPossible 尝试读取符号链接。 参数:

  • name: string 符号链接的路径。

返回值:

  • string: 符号链接指向的路径。
  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) Remove

func (u *CopyOnWriteFs) Remove(name string) error

Remove 删除文件。如果文件仅存在于基础层,则不允许删除。 参数:

  • name: string 文件名。

返回值:

  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) RemoveAll

func (u *CopyOnWriteFs) RemoveAll(name string) error

RemoveAll 删除目录及其内容。如果目录仅存在于基础层,则不允许删除。 参数:

  • name: string 目录名。

返回值:

  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) Rename

func (u *CopyOnWriteFs) Rename(oldname, newname string) error

Rename 重命名文件。如果文件仅存在于基础层,则不允许重命名。 参数:

  • oldname: string 旧文件名。
  • newname: string 新文件名。

返回值:

  • error: 如果发生错误,返回错误信息。

func (*CopyOnWriteFs) Stat

func (u *CopyOnWriteFs) Stat(name string) (os.FileInfo, error)

Stat 返回指定文件的文件信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

func (*CopyOnWriteFs) SymlinkIfPossible

func (u *CopyOnWriteFs) SymlinkIfPossible(oldname, newname string) error

SymlinkIfPossible 创建符号链接(如果可能) 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

type DirsMerger

type DirsMerger func(lofi, bofi []os.FileInfo) ([]os.FileInfo, error)

DirsMerger 是 UnionFile 如何将两个目录组合在一起的方法。 它获取来自覆盖层和基础层的 FileInfo 切片,并返回一个单一视图。

type File

type File interface {
	// Close 关闭文件
	io.Closer

	// Read 从文件中读取数据
	io.Reader

	// ReadAt 从文件的指定位置读取数据
	io.ReaderAt

	// Seek 设置文件的偏移量,用于下次读写操作
	io.Seeker

	// Write 向文件中写入数据
	io.Writer

	// WriteAt 向文件的指定位置写入数据
	io.WriterAt

	// Name 返回文件的名称
	Name() string

	// Readdir 读取目录的内容,返回文件信息列表
	// count 参数指定读取的文件数量,若为负数,则读取所有文件
	Readdir(count int) ([]os.FileInfo, error)

	// Readdirnames 读取目录的内容,返回文件名称列表
	// n 参数指定读取的文件名称数量,若为负数,则读取所有文件名称
	Readdirnames(n int) ([]string, error)

	// Stat 返回文件的文件信息
	Stat() (os.FileInfo, error)

	// Sync 将文件的内容同步到存储设备
	Sync() error

	// Truncate 改变文件的大小
	// 若文件变大,则新增部分内容未定义;若变小,则多余部分被丢弃
	Truncate(size int64) error

	// WriteString 向文件中写入字符串
	// 返回写入的字节数和可能出现的错误
	WriteString(s string) (ret int, err error)
}

File 表示文件系统中的一个文件 该接口包含了多种操作文件的方法

func TempFile

func TempFile(fs Afero, dir, pattern string) (f File, err error)

TempFile 在指定目录中创建一个新的临时文件 参数:

  • fs: Afero 文件系统
  • dir: string 目录路径
  • pattern: string 文件名模式

返回值:

  • File: 临时文件对象
  • error: 错误信息

type FromIOFS

type FromIOFS struct {
	fs.FS // 内嵌的 io/fs.FS 接口
}

FromIOFS 采用 io/fs.FS 并将其作为 afero.Fs 使用 注意 io/fs.FS 是只读的,因此所有变更方法将返回 fs.PathError 和 fs.ErrPermission 错误 要存储修改,可以使用 afero.CopyOnWriteFs

func (FromIOFS) Chmod

func (f FromIOFS) Chmod(name string, mode os.FileMode) error

Chmod 更改文件模式 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (FromIOFS) Chown

func (f FromIOFS) Chown(name string, uid, gid int) error

Chown 更改文件的所有者 参数:

  • name: string 文件名
  • uid: int 用户 ID
  • gid: int 组 ID

返回值:

  • error: 错误信息

func (FromIOFS) Chtimes

func (f FromIOFS) Chtimes(name string, atime, mtime time.Time) error

Chtimes 更改文件的访问和修改时间 参数:

  • name: string 文件名
  • atime: time.Time 访问时间
  • mtime: time.Time 修改时间

返回值:

  • error: 错误信息

func (FromIOFS) Create

func (f FromIOFS) Create(name string) (File, error)

Create 创建一个新文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (FromIOFS) Mkdir

func (f FromIOFS) Mkdir(name string, perm os.FileMode) error

Mkdir 创建目录 参数:

  • name: string 目录名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (FromIOFS) MkdirAll

func (f FromIOFS) MkdirAll(path string, perm os.FileMode) error

MkdirAll 创建目录及其所有父目录 参数:

  • path: string 路径名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (FromIOFS) Name

func (f FromIOFS) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (FromIOFS) Open

func (f FromIOFS) Open(name string) (File, error)

Open 打开指定名称的文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (FromIOFS) OpenFile

func (f FromIOFS) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 文件标志
  • perm: os.FileMode 文件模式

返回值:

  • File: 文件对象
  • error: 错误信息

func (FromIOFS) Remove

func (f FromIOFS) Remove(name string) error

Remove 删除指定文件 参数:

  • name: string 文件名

返回值:

  • error: 错误信息

func (FromIOFS) RemoveAll

func (f FromIOFS) RemoveAll(path string) error

RemoveAll 删除指定路径及其包含的所有子目录 参数:

  • path: string 路径名

返回值:

  • error: 错误信息

func (FromIOFS) Rename

func (f FromIOFS) Rename(oldname, newname string) error

Rename 重命名文件 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

func (FromIOFS) Stat

func (f FromIOFS) Stat(name string) (os.FileInfo, error)

Stat 返回文件的信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

type HttpFs

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

HttpFs 结构体表示一个 HTTP 文件系统

func NewHttpFs

func NewHttpFs(source Afero) *HttpFs

NewHttpFs 创建一个新的 HttpFs 参数:

  • source: Afero 源文件系统

返回值:

  • *HttpFs: 新的 HttpFs

func (HttpFs) Chmod

func (h HttpFs) Chmod(name string, mode os.FileMode) error

Chmod 更改文件模式 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (HttpFs) Chown

func (h HttpFs) Chown(name string, uid, gid int) error

Chown 更改文件的所有者 参数:

  • name: string 文件名
  • uid: int 用户 ID
  • gid: int 组 ID

返回值:

  • error: 错误信息

func (HttpFs) Chtimes

func (h HttpFs) Chtimes(name string, atime, mtime time.Time) error

Chtimes 更改文件的访问和修改时间 参数:

  • name: string 文件名
  • atime: time.Time 访问时间
  • mtime: time.Time 修改时间

返回值:

  • error: 错误信息

func (HttpFs) Create

func (h HttpFs) Create(name string) (File, error)

Create 创建一个新文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (HttpFs) Dir

func (h HttpFs) Dir(s string) *httpDir

Dir 返回一个 httpDir 对象 参数:

  • s: string 目录路径

返回值:

  • *httpDir: httpDir 对象

func (HttpFs) Mkdir

func (h HttpFs) Mkdir(name string, perm os.FileMode) error

Mkdir 创建目录 参数:

  • name: string 目录名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (HttpFs) MkdirAll

func (h HttpFs) MkdirAll(path string, perm os.FileMode) error

MkdirAll 创建目录及其所有父目录 参数:

  • path: string 路径名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (HttpFs) Name

func (h HttpFs) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (HttpFs) Open

func (h HttpFs) Open(name string) (http.File, error)

Open 打开指定文件 参数:

  • name: string 文件名

返回值:

  • http.File: 文件对象
  • error: 错误信息

func (HttpFs) OpenFile

func (h HttpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 文件标志
  • perm: os.FileMode 文件模式

返回值:

  • File: 文件对象
  • error: 错误信息

func (HttpFs) Remove

func (h HttpFs) Remove(name string) error

Remove 删除指定文件 参数:

  • name: string 文件名

返回值:

  • error: 错误信息

func (HttpFs) RemoveAll

func (h HttpFs) RemoveAll(path string) error

RemoveAll 删除指定路径及其包含的所有子目录 参数:

  • path: string 路径名

返回值:

  • error: 错误信息

func (HttpFs) Rename

func (h HttpFs) Rename(oldname, newname string) error

Rename 重命名文件 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

func (HttpFs) Stat

func (h HttpFs) Stat(name string) (os.FileInfo, error)

Stat 返回文件的信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

type IOFS

type IOFS struct {
	Afero // 内嵌的 afero.Fs 接口
}

IOFS 采用 afero.Fs 并适配为标准库的 io/fs.FS 接口

func NewIOFS

func NewIOFS(fs Afero) IOFS

NewIOFS 创建一个新的 IOFS 参数:

  • fs: Afero 源文件系统

返回值:

  • IOFS: 新的 IOFS 对象

func (IOFS) Glob

func (iofs IOFS) Glob(pattern string) ([]string, error)

Glob 根据模式匹配文件 参数:

  • pattern: string 匹配模式

返回值:

  • []string: 匹配的文件列表
  • error: 错误信息

func (IOFS) Open

func (iofs IOFS) Open(name string) (fs.File, error)

Open 打开指定名称的文件 参数:

  • name: string 文件名

返回值:

  • fs.File: 文件对象
  • error: 错误信息

func (IOFS) ReadDir

func (iofs IOFS) ReadDir(name string) ([]fs.DirEntry, error)

ReadDir 读取目录中的内容 参数:

  • name: string 目录名

返回值:

  • []fs.DirEntry: 目录条目列表
  • error: 错误信息

func (IOFS) ReadFile

func (iofs IOFS) ReadFile(name string) ([]byte, error)

ReadFile 读取指定名称的文件 参数:

  • name: string 文件名

返回值:

  • []byte: 文件内容
  • error: 错误信息

func (IOFS) Sub

func (iofs IOFS) Sub(dir string) (fs.FS, error)

Sub 返回子文件系统 参数:

  • dir: string 子目录

返回值:

  • fs.FS: 子文件系统
  • error: 错误信息

type LinkReader

type LinkReader interface {
	// ReadlinkIfPossible 读取符号链接(如果可能)
	// 参数:
	//   - name: string 文件名
	// 返回值:
	//   - string: 符号链接的目标路径
	//   - error: 错误信息
	ReadlinkIfPossible(name string) (string, error)
}

LinkReader 是 Afero 中的一个可选接口。只有声明支持该接口的文件系统才会实现它。 该接口表示支持 Readlink 方法。

type Linker

type Linker interface {
	// SymlinkIfPossible 创建符号链接(如果可能)
	// 参数:
	//   - oldname: string 旧文件名
	//   - newname: string 新文件名
	// 返回值:
	//   - error: 错误信息
	SymlinkIfPossible(oldname, newname string) error
}

Linker 是 Afero 中的一个可选接口。只有声明支持该接口的文件系统才会实现它。 如果文件系统本身是或委托给 os 文件系统,或者文件系统以其他方式支持 Symlink, 它将调用 Symlink 方法。

type Lstater

type Lstater interface {
	// LstatIfPossible 尽可能调用 Lstat 方法
	// 参数:
	//   - name: string 文件名
	// 返回值:
	//   - os.FileInfo: 文件信息
	//   - bool: 是否调用了 Lstat
	//   - error: 错误信息
	LstatIfPossible(name string) (os.FileInfo, bool, error)
}

Lstater 是 Afero 中的一个可选接口。只有声明支持该接口的文件系统才会实现它。 如果文件系统本身是或委托给 os 文件系统,它将调用 Lstat。 否则,它将调用 Stat。 除了返回 FileInfo,它还会返回一个布尔值,表示是否调用了 Lstat。

type MemMapFs

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

MemMapFs 是一个内存映射文件系统的实现

func (*MemMapFs) Chmod

func (m *MemMapFs) Chmod(name string, mode os.FileMode) error

Chmod 更改文件权限 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (*MemMapFs) Chown

func (m *MemMapFs) Chown(name string, uid, gid int) error

Chown 更改文件所有者 参数:

  • name: string 文件名
  • uid: int 用户 ID
  • gid: int 组 ID

返回值:

  • error: 错误信息

func (*MemMapFs) Chtimes

func (m *MemMapFs) Chtimes(name string, atime time.Time, mtime time.Time) error

Chtimes 更改文件访问和修改时间 参数:

  • name: string 文件名
  • atime: time.Time 访问时间
  • mtime: time.Time 修改时间

返回值:

  • error: 错误信息

func (*MemMapFs) Create

func (m *MemMapFs) Create(name string) (File, error)

Create 创建一个新文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*MemMapFs) List

func (m *MemMapFs) List()

List 列出所有文件和目录

func (*MemMapFs) LstatIfPossible

func (m *MemMapFs) LstatIfPossible(name string) (os.FileInfo, bool, error)

LstatIfPossible 获取文件信息(尽可能调用 Lstat) 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • bool: 是否调用了 Lstat
  • error: 错误信息

func (*MemMapFs) Mkdir

func (m *MemMapFs) Mkdir(name string, perm os.FileMode) error

Mkdir 创建目录 参数:

  • name: string 目录名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*MemMapFs) MkdirAll

func (m *MemMapFs) MkdirAll(path string, perm os.FileMode) error

MkdirAll 创建目录及其所有父目录 参数:

  • path: string 目录路径
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*MemMapFs) Name

func (*MemMapFs) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (*MemMapFs) Open

func (m *MemMapFs) Open(name string) (File, error)

Open 打开文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*MemMapFs) OpenFile

func (m *MemMapFs) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 文件标志
  • perm: os.FileMode 文件权限

返回值:

  • File: 文件对象
  • error: 错误信息

func (*MemMapFs) Remove

func (m *MemMapFs) Remove(name string) error

Remove 删除文件 参数:

  • name: string 文件名

返回值:

  • error: 错误信息

func (*MemMapFs) RemoveAll

func (m *MemMapFs) RemoveAll(path string) error

RemoveAll 删除指定路径及其所有子路径的所有文件 参数:

  • path: string 路径

返回值:

  • error: 错误信息

func (*MemMapFs) Rename

func (m *MemMapFs) Rename(oldname, newname string) error

Rename 重命名文件或目录 参数:

  • oldname: string 旧名称
  • newname: string 新名称

返回值:

  • error: 错误信息

func (*MemMapFs) Stat

func (m *MemMapFs) Stat(name string) (os.FileInfo, error)

Stat 获取文件信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

type OsFs

type OsFs struct{}

OsFs 是一个使用 os 包提供的函数实现的文件系统接口 有关各方法的详细信息,请查看 os 包的文档 (http://golang.org/pkg/os/)。

func (OsFs) Chmod

func (OsFs) Chmod(name string, mode os.FileMode) error

Chmod 更改文件模式 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (OsFs) Chown

func (OsFs) Chown(name string, uid, gid int) error

Chown 更改文件的所有者 参数:

  • name: string 文件名
  • uid: int 用户 ID
  • gid: int 组 ID

返回值:

  • error: 错误信息

func (OsFs) Chtimes

func (OsFs) Chtimes(name string, atime time.Time, mtime time.Time) error

Chtimes 更改文件的访问和修改时间 参数:

  • name: string 文件名
  • atime: time.Time 访问时间
  • mtime: time.Time 修改时间

返回值:

  • error: 错误信息

func (OsFs) Create

func (OsFs) Create(name string) (File, error)

Create 创建一个新文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (OsFs) LstatIfPossible

func (OsFs) LstatIfPossible(name string) (os.FileInfo, bool, error)

LstatIfPossible 尽可能调用 Lstat 方法 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • bool: 是否调用了 Lstat
  • error: 错误信息

func (OsFs) Mkdir

func (OsFs) Mkdir(name string, perm os.FileMode) error

Mkdir 创建目录 参数:

  • name: string 目录名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (OsFs) MkdirAll

func (OsFs) MkdirAll(path string, perm os.FileMode) error

MkdirAll 创建目录及其所有父目录 参数:

  • path: string 路径名
  • perm: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (OsFs) Name

func (OsFs) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (OsFs) Open

func (OsFs) Open(name string) (File, error)

Open 打开指定名称的文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (OsFs) OpenFile

func (OsFs) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 文件标志
  • perm: os.FileMode 文件权限

返回值:

  • File: 文件对象
  • error: 错误信息

func (OsFs) ReadlinkIfPossible

func (OsFs) ReadlinkIfPossible(name string) (string, error)

ReadlinkIfPossible 读取符号链接(如果可能) 参数:

  • name: string 文件名

返回值:

  • string: 符号链接的目标路径
  • error: 错误信息

func (OsFs) Remove

func (OsFs) Remove(name string) error

Remove 删除指定文件 参数:

  • name: string 文件名

返回值:

  • error: 错误信息

func (OsFs) RemoveAll

func (OsFs) RemoveAll(path string) error

RemoveAll 删除指定路径及其包含的所有子目录 参数:

  • path: string 路径名

返回值:

  • error: 错误信息

func (OsFs) Rename

func (OsFs) Rename(oldname, newname string) error

Rename 重命名文件 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

func (OsFs) Stat

func (OsFs) Stat(name string) (os.FileInfo, error)

Stat 返回文件的信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

func (OsFs) SymlinkIfPossible

func (OsFs) SymlinkIfPossible(oldname, newname string) error

SymlinkIfPossible 创建符号链接(如果可能) 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

type ReadOnlyFs

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

ReadOnlyFs 是一个只读文件系统的实现

func (*ReadOnlyFs) Chmod

func (r *ReadOnlyFs) Chmod(n string, m os.FileMode) error

Chmod 更改文件模式 参数:

  • n: string 文件名
  • m: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (*ReadOnlyFs) Chown

func (r *ReadOnlyFs) Chown(n string, uid, gid int) error

Chown 更改文件的所有者 参数:

  • n: string 文件名
  • uid: int 用户 ID
  • gid: int 组 ID

返回值:

  • error: 错误信息

func (*ReadOnlyFs) Chtimes

func (r *ReadOnlyFs) Chtimes(n string, a, m time.Time) error

Chtimes 更改文件的访问和修改时间 参数:

  • n: string 文件名
  • a: time.Time 访问时间
  • m: time.Time 修改时间

返回值:

  • error: 错误信息

func (*ReadOnlyFs) Create

func (r *ReadOnlyFs) Create(n string) (File, error)

Create 创建一个新文件 参数:

  • n: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*ReadOnlyFs) LstatIfPossible

func (r *ReadOnlyFs) LstatIfPossible(name string) (os.FileInfo, bool, error)

LstatIfPossible 尽可能调用 Lstat 方法 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • bool: 是否调用了 Lstat
  • error: 错误信息

func (*ReadOnlyFs) Mkdir

func (r *ReadOnlyFs) Mkdir(n string, p os.FileMode) error

Mkdir 创建目录 参数:

  • n: string 目录名
  • p: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*ReadOnlyFs) MkdirAll

func (r *ReadOnlyFs) MkdirAll(n string, p os.FileMode) error

MkdirAll 创建目录及其所有父目录 参数:

  • n: string 路径名
  • p: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*ReadOnlyFs) Name

func (r *ReadOnlyFs) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (*ReadOnlyFs) Open

func (r *ReadOnlyFs) Open(n string) (File, error)

Open 打开指定名称的文件 参数:

  • n: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*ReadOnlyFs) OpenFile

func (r *ReadOnlyFs) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 文件标志
  • perm: os.FileMode 文件权限

返回值:

  • File: 文件对象
  • error: 错误信息

func (*ReadOnlyFs) ReadDir

func (r *ReadOnlyFs) ReadDir(name string) ([]os.FileInfo, error)

ReadDir 读取目录内容 参数:

  • name: string 目录名

返回值:

  • []os.FileInfo: 目录条目列表
  • error: 错误信息

func (*ReadOnlyFs) ReadlinkIfPossible

func (r *ReadOnlyFs) ReadlinkIfPossible(name string) (string, error)

ReadlinkIfPossible 读取符号链接(如果可能) 参数:

  • name: string 文件名

返回值:

  • string: 符号链接的目标路径
  • error: 错误信息

func (*ReadOnlyFs) Remove

func (r *ReadOnlyFs) Remove(n string) error

Remove 删除指定文件 参数:

  • n: string 文件名

返回值:

  • error: 错误信息

func (*ReadOnlyFs) RemoveAll

func (r *ReadOnlyFs) RemoveAll(p string) error

RemoveAll 删除指定路径及其包含的所有子目录 参数:

  • p: string 路径名

返回值:

  • error: 错误信息

func (*ReadOnlyFs) Rename

func (r *ReadOnlyFs) Rename(o, n string) error

Rename 重命名文件 参数:

  • o: string 旧文件名
  • n: string 新文件名

返回值:

  • error: 错误信息

func (*ReadOnlyFs) Stat

func (r *ReadOnlyFs) Stat(name string) (os.FileInfo, error)

Stat 返回文件的信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

func (*ReadOnlyFs) SymlinkIfPossible

func (r *ReadOnlyFs) SymlinkIfPossible(oldname, newname string) error

SymlinkIfPossible 创建符号链接(如果可能) 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

type RegexpFile

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

RegexpFile 代表一个正则表达式过滤的文件

func (*RegexpFile) Close

func (f *RegexpFile) Close() error

Close 关闭文件 返回值:

  • error: 错误信息

func (*RegexpFile) Name

func (f *RegexpFile) Name() string

Name 返回文件名 返回值:

  • string: 文件名

func (*RegexpFile) Read

func (f *RegexpFile) Read(s []byte) (int, error)

Read 读取文件 参数:

  • s: []byte 缓冲区

返回值:

  • int: 读取的字节数
  • error: 错误信息

func (*RegexpFile) ReadAt

func (f *RegexpFile) ReadAt(s []byte, o int64) (int, error)

ReadAt 从指定偏移量读取文件 参数:

  • s: []byte 缓冲区
  • o: int64 偏移量

返回值:

  • int: 读取的字节数
  • error: 错误信息

func (*RegexpFile) Readdir

func (f *RegexpFile) Readdir(c int) (fi []os.FileInfo, err error)

Readdir 读取目录中的文件信息 参数:

  • c: int 读取的文件数

返回值:

  • []os.FileInfo: 文件信息列表
  • error: 错误信息

func (*RegexpFile) Readdirnames

func (f *RegexpFile) Readdirnames(c int) (n []string, err error)

Readdirnames 读取目录中的文件名 参数:

  • c: int 读取的文件数

返回值:

  • []string: 文件名列表
  • error: 错误信息

func (*RegexpFile) Seek

func (f *RegexpFile) Seek(o int64, w int) (int64, error)

Seek 设置文件指针的位置 参数:

  • o: int64 偏移量
  • w: int 起始位置

返回值:

  • int64: 新的文件指针位置
  • error: 错误信息

func (*RegexpFile) Stat

func (f *RegexpFile) Stat() (os.FileInfo, error)

Stat 获取文件信息 返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

func (*RegexpFile) Sync

func (f *RegexpFile) Sync() error

Sync 同步文件 返回值:

  • error: 错误信息

func (*RegexpFile) Truncate

func (f *RegexpFile) Truncate(s int64) error

Truncate 截断文件 参数:

  • s: int64 新的文件大小

返回值:

  • error: 错误信息

func (*RegexpFile) Write

func (f *RegexpFile) Write(s []byte) (int, error)

Write 写入文件 参数:

  • s: []byte 缓冲区

返回值:

  • int: 写入的字节数
  • error: 错误信息

func (*RegexpFile) WriteAt

func (f *RegexpFile) WriteAt(s []byte, o int64) (int, error)

WriteAt 从指定偏移量写入文件 参数:

  • s: []byte 缓冲区
  • o: int64 偏移量

返回值:

  • int: 写入的字节数
  • error: 错误信息

func (*RegexpFile) WriteString

func (f *RegexpFile) WriteString(s string) (int, error)

WriteString 写入字符串到文件 参数:

  • s: string 字符串

返回值:

  • int: 写入的字节数
  • error: 错误信息

type RegexpFs

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

RegexpFs 通过正则表达式过滤文件(不包括目录)。只有匹配给定正则表达式的文件才会被允许, 其他所有文件都会返回 ENOENT 错误("没有这样的文件或目录")。

func (*RegexpFs) Chmod

func (r *RegexpFs) Chmod(name string, mode os.FileMode) error

Chmod 更改文件权限 参数:

  • name: string 文件名
  • mode: os.FileMode 文件模式

返回值:

  • error: 错误信息

func (*RegexpFs) Chown

func (r *RegexpFs) Chown(name string, uid, gid int) error

Chown 更改文件所有者 参数:

  • name: string 文件名
  • uid: int 用户ID
  • gid: int 组ID

返回值:

  • error: 错误信息

func (*RegexpFs) Chtimes

func (r *RegexpFs) Chtimes(name string, a, m time.Time) error

Chtimes 更改文件访问和修改时间 参数:

  • name: string 文件名
  • a: time.Time 访问时间
  • m: time.Time 修改时间

返回值:

  • error: 错误信息

func (*RegexpFs) Create

func (r *RegexpFs) Create(name string) (File, error)

Create 创建文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*RegexpFs) Mkdir

func (r *RegexpFs) Mkdir(n string, p os.FileMode) error

Mkdir 创建目录 参数:

  • n: string 目录名
  • p: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*RegexpFs) MkdirAll

func (r *RegexpFs) MkdirAll(n string, p os.FileMode) error

MkdirAll 创建目录及其所有父目录 参数:

  • n: string 目录名
  • p: os.FileMode 目录权限

返回值:

  • error: 错误信息

func (*RegexpFs) Name

func (r *RegexpFs) Name() string

Name 返回文件系统的名称 返回值:

  • string: 文件系统名称

func (*RegexpFs) Open

func (r *RegexpFs) Open(name string) (File, error)

Open 打开文件 参数:

  • name: string 文件名

返回值:

  • File: 文件对象
  • error: 错误信息

func (*RegexpFs) OpenFile

func (r *RegexpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile 打开文件,支持指定标志和模式 参数:

  • name: string 文件名
  • flag: int 文件标志
  • perm: os.FileMode 文件权限

返回值:

  • File: 文件对象
  • error: 错误信息

func (*RegexpFs) Remove

func (r *RegexpFs) Remove(name string) error

Remove 删除文件 参数:

  • name: string 文件名

返回值:

  • error: 错误信息

func (*RegexpFs) RemoveAll

func (r *RegexpFs) RemoveAll(p string) error

RemoveAll 删除文件或目录及其子文件 参数:

  • p: string 路径

返回值:

  • error: 错误信息

func (*RegexpFs) Rename

func (r *RegexpFs) Rename(oldname, newname string) error

Rename 重命名文件 参数:

  • oldname: string 旧文件名
  • newname: string 新文件名

返回值:

  • error: 错误信息

func (*RegexpFs) Stat

func (r *RegexpFs) Stat(name string) (os.FileInfo, error)

Stat 获取文件信息 参数:

  • name: string 文件名

返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

type Symlinker

type Symlinker interface {
	Lstater    // 支持 Lstat 方法
	Linker     // 支持 Symlink 方法
	LinkReader // 支持 Readlink 方法
}

Symlinker 是 Afero 中的一个可选接口。只有声明支持该接口的文件系统才会实现它。 该接口表示支持以下三个与符号链接相关的接口,这些接口实现了 os 包中的方法:

  • Lstat
  • Symlink
  • Readlink

type UnionFile

type UnionFile struct {
	Base   File       // 基础层文件
	Layer  File       // 覆盖层文件
	Merger DirsMerger // 目录合并器
	// contains filtered or unexported fields
}

UnionFile 实现了 afero.File 接口,当读取目录时(至少在覆盖层中存在)或打开文件进行写入时返回该接口。

对 Readdir() 和 Readdirnames() 的调用将合并基础层和覆盖层中的文件 os.FileInfo / 名称 - 对于同时存在于两个层中的文件,只使用覆盖层中的文件。

当打开文件进行写入(使用正确标志的 Create() / OpenFile())时,操作将在两个层中进行, 从覆盖层开始。覆盖层中的成功读取将按读取的字节数移动基础层中的光标位置。

func (*UnionFile) Close

func (f *UnionFile) Close() error

Close 关闭文件 返回值:

  • error: 错误信息

func (*UnionFile) Name

func (f *UnionFile) Name() string

Name 返回文件名 返回值:

  • string: 文件名

func (*UnionFile) Read

func (f *UnionFile) Read(s []byte) (int, error)

Read 读取文件内容 参数:

  • s: []byte 缓冲区

返回值:

  • int: 读取的字节数
  • error: 错误信息

func (*UnionFile) ReadAt

func (f *UnionFile) ReadAt(s []byte, o int64) (int, error)

ReadAt 从指定偏移量读取文件内容 参数:

  • s: []byte 缓冲区
  • o: int64 偏移量

返回值:

  • int: 读取的字节数
  • error: 错误信息

func (*UnionFile) Readdir

func (f *UnionFile) Readdir(c int) (ofi []os.FileInfo, err error)

Readdir 将两个目录组合在一起并返回覆盖目录的单一视图。 在目录视图的末尾,如果 c > 0,错误为 io.EOF。 参数:

  • c: int 要读取的文件数

返回值:

  • []os.FileInfo: 文件信息列表
  • error: 错误信息

func (*UnionFile) Readdirnames

func (f *UnionFile) Readdirnames(c int) ([]string, error)

Readdirnames 返回目录中所有文件的名称列表 参数:

  • c: int 要读取的文件数

返回值:

  • []string: 文件名称列表
  • error: 错误信息

func (*UnionFile) Seek

func (f *UnionFile) Seek(o int64, w int) (pos int64, err error)

Seek 设置文件指针的位置 参数:

  • o: int64 偏移量
  • w: int 起始位置

返回值:

  • int64: 新的文件指针位置
  • error: 错误信息

func (*UnionFile) Stat

func (f *UnionFile) Stat() (os.FileInfo, error)

Stat 返回文件的信息 返回值:

  • os.FileInfo: 文件信息
  • error: 错误信息

func (*UnionFile) Sync

func (f *UnionFile) Sync() (err error)

Sync 同步文件内容到存储 返回值:

  • error: 错误信息

func (*UnionFile) Truncate

func (f *UnionFile) Truncate(s int64) (err error)

Truncate 截断文件到指定大小 参数:

  • s: int64 文件大小

返回值:

  • error: 错误信息

func (*UnionFile) Write

func (f *UnionFile) Write(s []byte) (n int, err error)

Write 写入文件内容 参数:

  • s: []byte 缓冲区

返回值:

  • int: 写入的字节数
  • error: 错误信息

func (*UnionFile) WriteAt

func (f *UnionFile) WriteAt(s []byte, o int64) (n int, err error)

WriteAt 从指定偏移量写入文件内容 参数:

  • s: []byte 缓冲区
  • o: int64 偏移量

返回值:

  • int: 写入的字节数
  • error: 错误信息

func (*UnionFile) WriteString

func (f *UnionFile) WriteString(s string) (n int, err error)

WriteString 写入字符串到文件 参数:

  • s: string 要写入的字符串

返回值:

  • int: 写入的字节数
  • error: 错误信息

Jump to

Keyboard shortcuts

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