Documentation ¶
Overview ¶
Package gfile 提供了对文件系统进行便捷操作的功能。
Index ¶
- Constants
- Variables
- func OpenWithFlagPerm别名(path string, flag int, perm os.FileMode) (*os.File, error)
- func ReadableSize别名(路径 string) string
- func Rename别名(src string, dst string) error
- func X写入字节集(路径 string, 字节集 []byte) error
- func X写入文本(路径 string, 文本 string) error
- func X创建文件与目录(文件路径 string) (*os.File, error)
- func X创建目录(目录 string) (错误 error)
- func X删除(路径或文件夹 string) (错误 error)
- func X取main路径() string
- func X取临时目录(可选路径 ...string) string
- func X取修改时间戳毫秒(路径 string) int64
- func X取修改时间戳秒(路径 string) int64
- func X取修改时间秒(路径 string) time.Time
- func X取大小(路径 string) int64
- func X取大小并易读格式(路径 string) string
- func X取字符偏移位置(reader io.ReaderAt, 待查找字符 byte, 查找起点 int64) int64
- func X取字节集按字符位置(reader io.ReaderAt, 待查找字符 byte, 查找起点 int64) ([]byte, int64)
- func X取字节集按范围(reader io.ReaderAt, 起点 int64, 终点 int64) []byte
- func X取当前工作目录() string
- func X取当前进程名() string
- func X取当前进程目录() string
- func X取当前进程路径() string
- func X取文件列表(路径 string) ([]string, error)
- func X取文件字符偏移位置(路径 string, 待查找字符 byte, 查找起点 int64) int64
- func X取文件字节集按字符位置(路径 string, 待查找字符 byte, 查找起点 int64) ([]byte, int64)
- func X取文件字节集按范围(路径 string, 起点 int64, 终点 int64) []byte
- func X取用户目录(可选子目录或子文件 ...string) (string, error)
- func X取绝对路径(路径 string) string
- func X取绝对路径且效验(路径 string) string
- func X取详情(路径 string) (os.FileInfo, error)
- func X复制(文件或目录路径 string, 复制到 string, 选项 ...CopyOption) error
- func X复制文件(路径, 复制到 string, 选项 ...CopyOption) (错误 error)
- func X复制目录(目录路径 string, 复制到 string, 选项 ...CopyOption) (错误 error)
- func X子文本替换(欲被替换的子文本, 用作替换的子文本, 文件路径 string) error
- func X子文本替换_函数(回调函数 func(路径, 内容 string) string, 文件路径 string) error
- func X字节长度转易读格式(文件大小 int64) string
- func X截断(路径 string, 长度 int) (错误 error)
- func X打开(路径 string, 读写模式 int, 权限模式 os.FileMode) (*os.File, error)
- func X打开并按只读模式(路径 string) (*os.File, error)
- func X打开并按默认权限(路径 string, 读写模式 int) (*os.File, error)
- func X排序(文件数组 []string) []string
- func X易读格式转字节长度(大小文本 string) int64
- func X是否为文件(路径 string) bool
- func X是否为空(路径 string) bool
- func X是否可写(路径 string) bool
- func X是否可读(路径 string) bool
- func X是否存在(路径 string) bool
- func X是否存在目录(路径 string) bool
- func X更改权限(路径 string, 权限模式 os.FileMode) (错误 error)
- func X枚举(目录 string, 匹配文件模式 string, 是否递归查找 ...bool) ([]string, error)
- func X枚举_函数(目录 string, 匹配文件模式 string, 是否递归查找 bool, ...) ([]string, error)
- func X枚举并含子目录名(目录 string, 匹配文件模式 string, 是否递归替换 ...bool) ([]string, error)
- func X枚举并含子目录名_函数(目录 string, 匹配文件模式 string, 是否递归替换 bool, ...) ([]string, error)
- func X查找(文件名 string, 优先级查找路径 ...string) (路径 string, 错误 error)
- func X模糊查找(路径 string, 返回绝对路径 ...bool) ([]string, error)
- func X目录子文本替换(...) error
- func X目录子文本替换_函数(回调函数 func(路径, 内容 string) string, ...) error
- func X移动(路径 string, 新路径 string) (错误 error)
- func X缓存读字节集(路径 string, 缓存时长 ...time.Duration) []byte
- func X缓存读文本(路径 string, 缓存时长 ...time.Duration) string
- func X设置当前工作目录(目录 string) (错误 error)
- func X读字节集(路径 string) []byte
- func X读文本(路径 string) string
- func X路径取扩展名(路径 string) string
- func X路径取扩展名且不含点号(路径 string) string
- func X路径取文件名(路径 string) string
- func X路径取文件名且不含扩展名(路径 string) string
- func X路径取父目录(路径 string) string
- func X路径生成(路径s ...string) string
- func X追加字节集(路径 string, 字节集 []byte) error
- func X追加文本(路径 string, 文本 string) error
- func X逐行读字节集_函数(文件路径 string, 回调函数 func(字节集 []byte) error) error
- func X逐行读文本_函数(文件路径 string, 回调函数 func(文本 string) error) error
- type CopyOption
Constants ¶
Variables ¶
var (
// DefaultReadBuffer 是用于读取文件内容的缓冲区大小。
DefaultReadBuffer = 1024
)
Functions ¶
func OpenWithFlagPerm别名 ¶
OpenWithFlagPerm 使用自定义`flag`和`perm`打开文件/目录。 参数`flag`类似于:O_RDONLY, O_RDWR, O_RDWR|O_CREATE|O_TRUNC等。 参数`perm`类似于:0600, 0666, 0777等。
func ReadableSize别名 ¶
ReadableSize 格式化给定路径 `path` 的文件大小,使其更易于人类阅读。
func X删除 ¶
Remove 函数用于删除参数 `path` 指定的文件或目录。 若参数 `path` 为目录,该函数会递归地删除整个目录及其包含的所有文件和子目录。
如果给定的 `path` 不存在或者为空,则该函数不做任何操作。
func X取main路径 ¶
func X取main路径() string
MainPkgPath 返回包含入口函数 main 的 main 包的绝对文件路径。
该功能仅在开发环境中可用。
注意1:仅对源代码开发环境有效,即仅对生成此可执行文件的系统有效。
注意2:当首次调用该方法时,如果处于异步 goroutine 中,则该方法可能无法获取到 main 包的路径。
func X取临时目录 ¶
Temp 函数获取并返回当前系统的临时目录路径。
可选参数 `names` 指定的是子文件夹或子文件名, 这些名称会与当前系统的路径分隔符拼接,并将最终生成的完整路径返回。
func X取字节集按范围 ¶
GetBytesByTwoOffsets 函数从 `start` 位置到 `end` 位置返回二进制内容作为 []byte 类型。 注意:返回的值不包含结束位置的字符,也就是说, 它返回的内容范围是 [start, end)。
func X取文件字符偏移位置 ¶
GetNextCharOffsetByPath 函数从给定的 `start` 位置开始,返回文件中指定 `char` 字符的文件偏移量。 它以 os.O_RDONLY 标志和默认权限打开 `path` 指定的文件进行读取。
func X取文件字节集按字符位置 ¶
GetBytesTilCharByPath 函数通过给定的 `path` 返回文件内容,直到遇到指定字节 `char` 的位置为止。 它以 os.O_RDONLY 标志和默认权限打开 `path` 指定的文件进行读取。
注意:返回的结果包含最后一个位置的字符。
func X取文件字节集按范围 ¶
GetBytesByTwoOffsetsByPath 根据路径返回从 `start` 到 `end` 的二进制内容作为 []byte。 注意:返回的值不包含结束位置的字符,这意味着它返回的内容范围是 [start, end)。 它以 os.O_RDONLY 标志和默认权限打开 `path` 指定的文件进行读取。
func X取绝对路径 ¶
Abs 返回 path 的绝对路径表示。 如果 path 不是绝对路径,则将其与当前工作目录连接, 以转换为绝对路径。对于给定的文件,其绝对路径名称不保证唯一性。 Abs 会对结果调用 Clean 函数。 这段代码是关于 Go 语言(Golang)中的 `path/filepath` 包中 Abs 函数的注释翻译: ```go Abs 函数返回路径 path 的绝对路径形式。 如果路径 path 不是绝对路径,该函数会将其与当前工作目录拼接, 从而生成一个绝对路径。需要注意的是,即使对于同一个文件,其计算出的绝对路径也未必是唯一的。 Abs 函数还会对处理后的结果调用 Clean 函数进行规范化。
func X复制 ¶
func X复制(文件或目录路径 string, 复制到 string, 选项 ...CopyOption) error
将文件/目录从`src`复制到`dst`。
如果`src`是文件,它将调用CopyFile实现复制功能, 否则调用CopyDir。
如果`src`是文件,但`dst`已存在且是一个文件夹, 则在`dst`目录下创建一个与`src`同名的文件。
示例: Copy("/tmp/file1", "/tmp/file2") => 将/tmp/file1复制到/tmp/file2 Copy("/tmp/dir1", "/tmp/dir2") => 将/tmp/dir1复制到/tmp/dir2 Copy("/tmp/file1", "/tmp/dir2") => 将/tmp/file1复制到/tmp/dir2/file1 Copy("/tmp/dir1", "/tmp/file2") => 报错
func X复制文件 ¶
func X复制文件(路径, 复制到 string, 选项 ...CopyOption) (错误 error)
CopyFile 将名为 `src` 的文件内容复制到名为 `dst` 的文件中。如果目标文件不存在,将会创建该文件。如果目标文件已存在,则其所有内容将被源文件内容替换。文件模式将从源文件复制,并且复制的数据将同步/刷新到稳定的存储设备中。 感谢:https://gist.github.com/r0l1/92462b38df26839a3ca324697c8cba04
func X复制目录 ¶
func X复制目录(目录路径 string, 复制到 string, 选项 ...CopyOption) (错误 error)
CopyDir递归地复制一个目录树,尝试保持原有的权限设置。
注意:源目录必须存在,并且符号链接会被忽略并跳过。
func X打开 ¶
OpenFile函数以自定义的`flag`和`perm`打开文件/目录。 参数`flag`类似于:O_RDONLY, O_RDWR, O_RDWR|O_CREATE|O_TRUNC等。
func X打开并按默认权限 ¶
OpenWithFlag 函数以默认权限和自定义标志 `flag` 打开文件/目录。 默认的 `perm` 为 0666。 参数 `flag` 如:O_RDONLY, O_RDWR, O_RDWR|O_CREATE|O_TRUNC 等。
func X是否为空 ¶
IsEmpty 检查给定的 `path` 是否为空。 如果 `path` 是一个文件夹,它会检查该文件夹下是否存在任何文件。 如果 `path` 是一个文件,它会检查该文件的大小是否为零。
注意,如果 `path` 不存在,此函数也将返回 true。
func X枚举 ¶
ScanDirFile 返回给定 `path` 下所有子文件的绝对路径, 如果给定参数 `recursive` 为 true,则会递归扫描目录。
参数 `pattern` 支持多个文件名模式, 使用 `,` 符号来分隔多个模式。
注意,它只返回文件,不包括目录。
func X枚举_函数 ¶
ScanDirFileFunc 函数返回给定路径 `path` 下所有子文件的绝对路径。 如果给定参数 `recursive` 为 true,则会递归扫描目录。
参数 `pattern` 支持多个文件名模式,使用 ',' 符号分隔多个模式。
参数 `recursive` 指定是否递归扫描 `path`,这意味着如果子文件也是一个文件夹,则会扫描其下级文件并将文件路径添加到结果数组中,默认情况下为 false。
参数 `handler` 指定了处理 `path` 及其子文件夹下每个子文件路径的回调函数。如果 `handler` 返回空字符串,则忽略该子文件路径,否则将子文件路径追加到结果切片中。
注意,传给 `handler` 的参数 `path` 不是一个目录而是一个文件。 此函数仅返回文件(不包括目录)。
func X枚举并含子目录名 ¶
ScanDir 返回给定路径`path`下所有子文件的绝对路径, 若给定参数`recursive`为真,则会递归扫描目录。
参数`pattern`支持多种文件名模式, 可以使用逗号 ',' 作为分隔符来指定多个模式。
func X枚举并含子目录名_函数 ¶
func X枚举并含子目录名_函数(目录 string, 匹配文件模式 string, 是否递归替换 bool, 回调函数 func(路径 string) string) ([]string, error)
ScanDirFunc 函数返回给定 `path` 下所有子文件的绝对路径, 如果给定参数 `recursive` 为 true,则会递归扫描目录。
参数 `pattern` 支持多个文件名模式,使用 ',' 符号分隔多个模式。
参数 `recursive` 指定是否递归扫描 `path`,这意味着如果子文件也是一个文件夹,它会扫描其下的子文件并将文件路径追加到结果数组中,默认情况下为 false。
参数 `handler` 指定了处理 `path` 及其子文件夹下每个子文件路径的回调函数。如果 `handler` 返回空字符串,则忽略该子文件路径,否则将其子文件路径追加到结果切片中。
func X查找 ¶
Search searches file by name `name` in following paths with priority: prioritySearchPaths, Pwd()、SelfDir()、MainPkgPath(). It returns the absolute file path of `name` if found, or en empty string if not found.
func X模糊查找 ¶
Glob返回所有与pattern匹配的文件名,如果没有匹配的文件,则返回nil。模式语法与Match函数中相同。 模式可以描述层级式的文件名,例如(假设分隔符为'/')/usr/*/bin/ed。
Glob会忽略文件系统错误,如读取目录时的I/O错误。唯一可能返回的错误是ErrBadPattern,仅当模式格式不正确时发生。
func X目录子文本替换 ¶
ReplaceDir 函数用于替换 `path` 路径下文件的内容。 参数 `pattern` 指定需要进行替换的文件匹配模式。 如果给定的参数 `recursive` 为 true,则会递归地进行替换操作。
func X目录子文本替换_函数 ¶
ReplaceDirFunc 函数使用回调函数 `f` 替换路径 `path` 下符合模式 `pattern` 的文件内容。 参数 `pattern` 指定需要匹配并替换的文件模式。 若给定参数 `recursive` 为真,则会递归地进行替换操作。
func X缓存读字节集 ¶
GetBytesWithCache 函数通过 `path` 从缓存中获取指定文件的 []byte 内容。 如果缓存中没有内容,会从由 `path` 指定的磁盘文件中读取内容。 参数 `expire` 指定了此文件内容在缓存中的有效期,单位为秒。
func X缓存读文本 ¶
GetContentsWithCache 通过`path`从缓存返回指定文件的字符串内容。 如果缓存中没有内容,则会从由`path`指定的磁盘文件中读取内容。 参数`expire`指定了此文件内容在缓存中的有效期,单位为秒。
func X路径取扩展名 ¶
Ext 返回路径 path 使用的文件名扩展名。 扩展名是从路径中最后一个元素的最后一个点开始的后缀; 如果没有点,则为空。 注意:结果中包含符号 '.'。 示例: main.go => .go api.json => .json
func X路径取扩展名且不含点号 ¶
ExtName 类似于函数 Ext,它返回路径中使用的文件名扩展名, 但是结果中不包含符号'.'。 示例: main.go => go api.json => json
func X路径取文件名 ¶
Basename 返回路径的最后一个元素,其中包含文件扩展名。 在提取最后一个元素之前会移除尾部的路径分隔符。 如果路径为空,Base 返回 "."。 如果路径完全由分隔符组成,Basename 将返回一个单个分隔符。 示例: /var/www/file.js -> file.js file.js -> file.js
func X路径取文件名且不含扩展名 ¶
Name函数返回路径中最后一个元素的文件名部分,不包括文件扩展名。 示例: /var/www/file.js -> file file.js -> file
func X路径取父目录 ¶
Dir 返回路径path去掉最后一个元素后的部分,通常为路径的目录部分。 在去掉最后一个元素之后,Dir会对路径进行Clean操作,并移除尾部的斜杠。 如果 `path` 为空,Dir 返回"."。 如果 `path` 为".", Dir 将路径视为当前工作目录。 如果 `path` 完全由分隔符组成,Dir 返回一个单独的分隔符。 返回的路径除非是根目录,否则不会以分隔符结尾。
func X逐行读字节集_函数 ¶
ReadLinesBytes 逐行读取文件内容,并以 []byte 的形式将每一行传递给回调函数 `callback`。 它匹配由 '\r' 或 '\n' 分隔的每行文本,同时去除末尾的换行符。
注意,传递给回调函数的参数可能为空值,即使最后一行非空行没有换行符,也会将其传递给回调函数 `callback`。