mem

package
v2.0.7 Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const FilePathSeparator = string(filepath.Separator)

FilePathSeparator 是文件路径的分隔符

Variables

View Source
var (
	ErrFileClosed        = errors.New("File is closed") // 文件已关闭错误
	ErrOutOfRange        = errors.New("out of range")   // 超出范围错误
	ErrTooLarge          = errors.New("too large")      // 文件过大错误
	ErrFileNotFound      = os.ErrNotExist               // 文件未找到错误
	ErrFileExists        = os.ErrExist                  // 文件已存在错误
	ErrDestinationExists = os.ErrExist                  // 目标已存在错误
)

Functions

func AddToMemDir

func AddToMemDir(dir *FileData, f *FileData)

AddToMemDir 添加文件到内存目录 参数:

  • dir: *FileData 目录的数据
  • f: *FileData 要添加的文件数据

func ChangeFileName

func ChangeFileName(f *FileData, newname string)

ChangeFileName 修改文件名称 参数:

  • f: *FileData 文件数据
  • newname: string 新的文件名称

func InitializeDir

func InitializeDir(d *FileData)

InitializeDir 初始化目录 参数:

  • d: *FileData 要初始化的目录数据

func RemoveFromMemDir

func RemoveFromMemDir(dir *FileData, f *FileData)

RemoveFromMemDir 从内存目录中移除文件 参数:

  • dir: *FileData 目录的数据
  • f: *FileData 要移除的文件数据

func SetGID

func SetGID(f *FileData, gid int)

SetGID 设置文件所有者的组ID 参数:

  • f: *FileData 文件数据
  • gid: int 组ID

func SetModTime

func SetModTime(f *FileData, mtime time.Time)

SetModTime 设置文件修改时间 参数:

  • f: *FileData 文件数据
  • mtime: time.Time 文件修改时间

func SetMode

func SetMode(f *FileData, mode os.FileMode)

SetMode 设置文件权限模式 参数:

  • f: *FileData 文件数据
  • mode: os.FileMode 文件权限模式

func SetUID

func SetUID(f *FileData, uid int)

SetUID 设置文件所有者的用户ID 参数:

  • f: *FileData 文件数据
  • uid: int 用户ID

Types

type Dir

type Dir interface {
	Len() int           // 返回目录中文件的数量
	Names() []string    // 返回目录中文件的名称
	Files() []*FileData // 返回目录中文件的数据
	Add(*FileData)      // 添加文件到目录
	Remove(*FileData)   // 从目录中移除文件
}

Dir 接口定义了目录操作的方法

type DirMap

type DirMap map[string]*FileData

DirMap 是一个 map,键为字符串,值为 *FileData

func (DirMap) Add

func (m DirMap) Add(f *FileData)

Add 将文件添加到目录 参数:

  • f: *FileData 要添加的文件数据

func (DirMap) Files

func (m DirMap) Files() (files []*FileData)

Files 返回目录中文件的数据,按文件名排序

func (DirMap) Len

func (m DirMap) Len() int

Len 返回目录中文件的数量

func (DirMap) Names

func (m DirMap) Names() (names []string)

Names 返回目录中文件的名称

func (DirMap) Remove

func (m DirMap) Remove(f *FileData)

Remove 从目录中移除文件 参数:

  • f: *FileData 要移除的文件数据

type File

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

File 结构体表示一个文件

func NewFileHandle

func NewFileHandle(data *FileData) *File

NewFileHandle 创建一个新的文件句柄 参数:

  • data: *FileData 文件的数据

返回:

  • *File 新的文件句柄

func NewReadOnlyFileHandle

func NewReadOnlyFileHandle(data *FileData) *File

NewReadOnlyFileHandle 创建一个新的只读文件句柄 参数:

  • data: *FileData 文件的数据

返回:

  • *File 新的只读文件句柄

func (*File) Close

func (f *File) Close() error

Close 关闭文件 返回:

  • error 错误信息,如果有

func (File) Data

func (f File) Data() *FileData

Data 返回文件的数据 返回:

  • *FileData 文件的数据

func (*File) Info

func (f *File) Info() *FileInfo

Info 返回文件的 FileInfo 返回:

  • *FileInfo 文件信息

func (*File) Name

func (f *File) Name() string

Name 返回文件的名称 返回:

  • string 文件名称

func (*File) Open

func (f *File) Open() error

Open 打开文件 返回:

  • error 错误信息,如果有

func (*File) Read

func (f *File) Read(b []byte) (n int, err error)

Read 读取文件数据到缓冲区 参数:

  • b: []byte 缓冲区

返回:

  • int 读取的字节数
  • error 错误信息,如果有

func (*File) ReadAt

func (f *File) ReadAt(b []byte, off int64) (n int, err error)

ReadAt 从指定偏移位置读取文件数据到缓冲区 参数:

  • b: []byte 缓冲区
  • off: int64 偏移量

返回:

  • int 读取的字节数
  • error 错误信息,如果有

func (*File) ReadDir

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

ReadDir 实现 fs.ReadDirFile 接口 参数:

  • n: int 要读取的文件数量

返回:

  • []fs.DirEntry 目录条目切片
  • error 错误信息,如果有

func (*File) Readdir

func (f *File) Readdir(count int) (res []os.FileInfo, err error)

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

  • count: int 要读取的文件数量

返回:

  • []os.FileInfo 文件信息切片
  • error 错误信息,如果有

func (*File) Readdirnames

func (f *File) Readdirnames(n int) (names []string, err error)

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

  • n: int 要读取的文件数量

返回:

  • []string 文件名切片
  • error 错误信息,如果有

func (*File) Seek

func (f *File) Seek(offset int64, whence int) (int64, error)

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

  • offset: int64 偏移量
  • whence: int 偏移量的起始位置

返回:

  • int64 新的文件指针位置
  • error 错误信息,如果有

func (*File) Stat

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

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

  • os.FileInfo 文件信息
  • error 错误信息,如果有

func (*File) Sync

func (f *File) Sync() error

Sync 同步文件数据到存储设备 返回:

  • error 错误信息,如果有

func (*File) Truncate

func (f *File) Truncate(size int64) error

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

  • size: int64 要截断的大小

返回:

  • error 错误信息,如果有

func (*File) Write

func (f *File) Write(b []byte) (n int, err error)

Write 向文件写入数据 参数:

  • b: []byte 要写入的数据

返回:

  • int 写入的字节数
  • error 错误信息,如果有

func (*File) WriteAt

func (f *File) WriteAt(b []byte, off int64) (n int, err error)

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

  • b: []byte 要写入的数据
  • off: int64 偏移量

返回:

  • int 写入的字节数
  • error 错误信息,如果有

func (*File) WriteString

func (f *File) WriteString(s string) (ret int, err error)

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

  • s: string 要写入的字符串

返回:

  • int 写入的字节数
  • error 错误信息,如果有

type FileData

type FileData struct {
	sync.Mutex
	// contains filtered or unexported fields
}

FileData 结构体表示文件的数据

func CreateDir

func CreateDir(name string) *FileData

CreateDir 创建一个新的目录 参数:

  • name: string 目录名称

返回:

  • *FileData 新的目录数据

func CreateFile

func CreateFile(name string) *FileData

CreateFile 创建一个新的文件 参数:

  • name: string 文件名称

返回:

  • *FileData 新的文件数据

func (*FileData) Name

func (d *FileData) Name() string

Name 返回文件的名称 返回:

  • string 文件名称

type FileInfo

type FileInfo struct {
	*FileData
}

FileInfo 结构体,用于表示文件信息

func GetFileInfo

func GetFileInfo(f *FileData) *FileInfo

GetFileInfo 获取文件信息 参数:

  • f: *FileData 文件数据

返回:

  • *FileInfo 文件信息

func (*FileInfo) IsDir

func (s *FileInfo) IsDir() bool

IsDir 返回是否为目录,实现 os.FileInfo 接口 返回:

  • bool 是否为目录

func (*FileInfo) ModTime

func (s *FileInfo) ModTime() time.Time

ModTime 返回文件修改时间,实现 os.FileInfo 接口 返回:

  • time.Time 文件修改时间

func (*FileInfo) Mode

func (s *FileInfo) Mode() os.FileMode

Mode 返回文件模式,实现 os.FileInfo 接口 返回:

  • os.FileMode 文件模式

func (*FileInfo) Name

func (s *FileInfo) Name() string

Name 返回文件名,实现 os.FileInfo 接口 返回:

  • string 文件名

func (*FileInfo) Size

func (s *FileInfo) Size() int64

Size 返回文件大小,实现 os.FileInfo 接口 返回:

  • int64 文件大小

func (*FileInfo) Sys

func (s *FileInfo) Sys() interface{}

Sys 返回底层数据结构,实现 os.FileInfo 接口 返回:

  • interface{} 底层数据结构

Jump to

Keyboard shortcuts

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