文件类

package
v0.0.0-...-058f7b3 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2024 License: MIT Imports: 25 Imported by: 2

Documentation

Overview

gfile 包提供了易于使用的文件系统操作。 md5:51d18e994a768bb4

Index

Constants

View Source
const (
	// 文件系统分隔符。
	// 这里将分隔符定义为变量,
	// 以便开发人员在必要时进行修改。
	// md5:ec0b6e47ec28478f
	X常量_文件_系统分隔符 = string(filepath.Separator)

	// X常量_文件_打开默认权限 是文件打开的默认权限。 md5:dc57341030d46a11
	X常量_文件_打开默认权限 = os.FileMode(0666)

	// X常量_文件_复制默认权限 是用于文件/文件夹复制的默认权限。 md5:fdef6c133c375aa4
	X常量_文件_复制默认权限 = os.FileMode(0755)
)

Variables

View Source
var (
	// DefaultReadBuffer 是用于读取文件内容的缓冲区大小。 md5:ff60c55c31212953
	DefaultReadBuffer = 1024
)

Functions

func X写入字节集

func X写入字节集(路径 string, 字节集 []byte) error

X写入字节集 将二进制 `content` 存储到 `path` 对应的文件中。 如果文件 `path` 不存在,它会递归创建文件。 md5:3ac1025ef9039ab7

func X写入文本

func X写入文本(路径 string, 文本 string) error

X写入文本 将字符串 `content` 写入到文件 `path` 中。 如果文件 `path` 不存在,该函数会递归创建。 md5:155829d6dddf1340

func X创建文件与目录

func X创建文件与目录(文件路径 string) (*os.File, error)

X创建文件与目录 递归地创建具有给定`path`的文件。 建议参数`path`使用绝对路径。 md5:163accaf36969b42

func X创建目录

func X创建目录(目录 string) (错误 error)

X创建目录 递归创建给定的 `path` 所表示的目录。建议使用绝对路径而非相对路径作为参数。 md5:e78abb40a45c2886

func X删除

func X删除(路径或文件夹 string) (错误 error)

X删除 删除具有`path`参数的所有文件/目录。 如果参数`path`是一个目录,它会递归地删除该目录。

如果给定的`path`不存在或为空,它不做任何操作。 md5:ae9ec60d038f0ebd

func X取main目录

func X取main目录() string

X取main目录 返回包含入口函数main的package main的绝对文件目录。

它仅在开发环境中可用。

注意1:仅对源代码开发环境有效, 即仅对生成此可执行文件的系统有效。

注意2:首次调用此方法时,如果处于异步goroutine中, 方法可能无法获取到main包的路径。 md5:7fb1d2fdcb626f85

func X取临时目录

func X取临时目录(子目录或子文件 ...string) string

X取临时目录获取并返回当前系统的临时目录。

可选参数`子目录或子文件`指定了要与当前系统分隔符连接的子文件夹/子文件,将与路径一起返回。 md5:8db9471945246517

func X取修改时间

func X取修改时间(路径 string) time.Time

X取修改时间 返回由`path`指定的文件的修改时间(以秒为单位)。 md5:66dbc182c71f7ffb

func X取修改时间戳毫秒

func X取修改时间戳毫秒(路径 string) int64

X取修改时间戳毫秒 返回由 `path` 指定的文件的修改时间(以毫秒为单位)。 md5:2def39248c3bde9b

func X取修改时间戳秒

func X取修改时间戳秒(路径 string) int64

X取修改时间戳秒 返回给定路径`path`的文件修改时间,以秒为单位。 md5:bb848f3c89f3cb71

func X取大小

func X取大小(路径 string) int64

X取大小 返回指定路径`path`的文件大小,以字节为单位。 md5:bb6ab734af5c941f

func X取大小并易读格式

func X取大小并易读格式(路径 string) string

X取大小并易读格式 返回由 `path` 指定的文件的大小,格式为字符串。 md5:17a4b324cd8ec9a7

func X取字符偏移位置

func X取字符偏移位置(reader io.ReaderAt, 待查找字符 byte, 查找起点 int64) int64

X取字符偏移位置 返回从`start`开始的给定`char`的文件偏移量。 md5:fd9885f76bb1a398

func X取字节集按字符位置

func X取字节集按字符位置(reader io.ReaderAt, 待查找字符 byte, 查找起点 int64) ([]byte, int64)

X取字节集按字符位置 读取文件内容,直到遇到指定的字节`char`位置,然后返回该位置之前的所有内容作为[]byte。

注意:返回值包含最后一个位置的字符。 md5:d7db409d8f51ccd8

func X取字节集按范围

func X取字节集按范围(reader io.ReaderAt, 起点 int64, 终点 int64) []byte

X取字节集按范围 从`start`到`end`返回二进制内容作为[]byte。 注意:返回的值不包含最后一个位置的字符,意味着它返回的内容范围是[start, end)。 md5:fb50a5776f6863f6

func X取当前工作目录

func X取当前工作目录() string

X取当前工作目录 返回当前工作目录的绝对路径。 注意,如果获取当前工作目录失败,它将返回一个空字符串。 md5:90f41f1bfdd61dba

func X取当前进程名

func X取当前进程名() string

X取当前进程名 返回当前运行进程(二进制文件)的文件名。 md5:1dea5b20c2c13ef6

func X取当前进程目录

func X取当前进程目录() string

X取当前进程目录返回当前运行进程(二进制文件)的绝对目录路径。 md5:36d8d88a7947606c

func X取当前进程路径

func X取当前进程路径() string

X取当前进程路径 返回当前运行进程(二进制文件)的绝对文件路径。 md5:87c861104977f515

func X取扩展名

func X取扩展名(路径 string) string

X取扩展名 返回路径使用的文件名扩展名。 扩展名是路径最后一个元素中从最后一个点开始的后缀; 如果没有点,则扩展名为空。 注意:结果包含符号'.'。

示例: X取扩展名("main.go") => .go X取扩展名("api.json") => .json md5:63a13ee69ce09cec

func X取扩展名且不含点号

func X取扩展名且不含点号(路径 string) string

X取扩展名且不含点号 类似于函数 Ext,它返回路径中使用的文件扩展名, 但结果不包含符号'.'。

示例: X取扩展名且不含点号("main.go") => "go" X取扩展名且不含点号("api.json") => "json" md5:d508af455375f787

func X取文件列表

func X取文件列表(路径 string) ([]string, error)

X取文件列表 返回给定目录 `path` 的子文件名。请注意,返回的名称不是绝对路径。 md5:62471f4b0e0bb389

func X取文件名

func X取文件名(路径 string) string

X取文件名 返回路径中的最后一个元素,该元素包含文件扩展名。 在提取最后一个元素之前,会移除尾随的路径分隔符。 如果路径为空,Base 返回 "."。 如果路径完全由分隔符组成,X取文件名 返回一个单个的分隔符。

示例: X取文件名("/var/www/file.js") -> file.js X取文件名("file.js") -> file.js md5:0601675e20751381

func X取文件名且不含扩展名

func X取文件名且不含扩展名(路径 string) string

X取文件名且不含扩展名 返回路径中不包含文件扩展名的最后一个元素。

示例: X取文件名且不含扩展名("/var/www/file.js") -> file X取文件名且不含扩展名("file.js") -> file md5:231670418efd9216

func X取文件字符偏移位置

func X取文件字符偏移位置(路径 string, 待查找字符 byte, 查找起点 int64) int64

X取文件字符偏移位置 从`start`开始,返回给定`char`对应的文件偏移量。 它使用os.O_RDONLY标志和默认权限打开`path`文件进行读取。 md5:c328b89cddf1bd1d

func X取文件字节集按字符位置

func X取文件字节集按字符位置(路径 string, 待查找字符 byte, 查找起点 int64) ([]byte, int64)

X取文件字节集按字符位置 根据给定的`path`返回文件内容,直到遇到下一个指定的字节`char`位置为止。 它使用 os.O_RDONLY 标志和默认权限以只读方式打开`path`指定的文件。

注意:返回的值包含最后一个位置的字符。 md5:aefddbb30f37dff7

func X取文件字节集按范围

func X取文件字节集按范围(路径 string, 起点 int64, 终点 int64) []byte

X取文件字节集按范围 通过"path"从`start`到`end`获取二进制内容并返回为[]byte。 注意:返回值不包含最后一个位置的字符,意味着它返回的内容范围是[start, end)。 它使用os.O_RDONLY标志和默认权限打开`path`文件进行读取。 md5:26e574b11f4b1e0f

func X取父目录

func X取父目录(路径 string) string

X取父目录 函数返回 path 中除最后一个元素之外的所有内容,通常为路径的目录。在丢弃最后一个元素后,X取父目录 对路径调用 Clean 函数,并移除尾随的斜杠。 如果 `path` 为空,X取父目录 返回"."。 如果 `path` 为".",X取父目录 将路径视为当前工作目录。 如果 `path` 仅由分隔符组成,X取父目录 返回一个单独的分隔符。 返回的路径除非是根目录,否则不会以分隔符结尾。

示例: X取父目录("/var/www/file.js") -> "/var/www" X取父目录("file.js") -> "." md5:03710913db229986

func X取用户目录

func X取用户目录(可选子目录或子文件 ...string) (string, error)

X取用户目录 返回当前用户主目录的绝对路径。 可选参数 `names` 指定了要与当前系统分隔符连接的子文件夹/子文件,将与路径一起返回。 md5:0b575ba0215ebb2d

func X取绝对路径

func X取绝对路径(路径 string) string

X取绝对路径返回一个路径的绝对表示。 如果路径不是绝对路径,它将与当前工作目录连接起来,使其成为一个绝对路径。对于给定的文件,其绝对路径名称并不保证是唯一的。 X取绝对路径会调用Clean方法处理结果。 md5:4cb8146c59de22da

func X取绝对路径且效验

func X取绝对路径且效验(路径 string) string

X取绝对路径且效验 将给定的`path`转换为其绝对路径 并检查文件路径是否存在。 如果文件不存在,则返回空字符串。 md5:125663d904f8d81e

func X取详情

func X取详情(路径 string) (os.FileInfo, error)

X取详情 返回一个描述命名文件的 FileInfo。如果出现错误,错误类型为 *PathError。 md5:f4ee45de3278c17f

func X复制

func X复制(文件或目录路径 string, 复制到 string, 选项 ...X结构_复制选项) error

将源`src`文件/目录复制到目标`dst`。

如果`src`是文件,它会调用CopyFile来实现复制功能, 否则,它会调用CopyDir。

如果`src`是文件,但`dst`已经存在并且是一个文件夹, 那么它会在`dst`文件夹中创建一个与`src`同名的文件。

例如: X复制("/tmp/file1", "/tmp/file2") => 将/tmp/file1复制到/tmp/file2 X复制("/tmp/dir1", "/tmp/dir2") => 将/tmp/dir1复制到/tmp/dir2 X复制("/tmp/file1", "/tmp/dir2") => 将/tmp/file1复制到/tmp/dir2/file1 X复制("/tmp/dir1", "/tmp/file2") => 出错 md5:51c6598025f6b135

func X复制文件

func X复制文件(路径, 复制到 string, 选项 ...X结构_复制选项) (错误 error)

X复制文件 将名为 `src` 的文件的内容复制到由 `dst` 指定的文件中。如果目标文件不存在,它将被创建。如果目标文件已存在,其所有内容将被源文件的内容替换。文件权限将从源文件复制,并且复制的数据会被同步/刷新到稳定的存储中。 谢谢:https://gist.github.com/r0l1/92462b38df26839a3ca324697c8cba04 md5:e2fc3c25ff06fa5b

func X复制目录

func X复制目录(目录路径 string, 复制到 string, 选项 ...X结构_复制选项) (错误 error)

X复制目录 递归地复制目录树,尝试保留权限。

注意,源目录必须存在,并且符号链接将被忽略和跳过。 md5:4dd9167e563fa997

func X子文本替换

func X子文本替换(欲被替换的子文本, 用作替换的子文本, 文件路径 string) error

X子文本替换 替换文件 `path` 的内容。 md5:70e99046a619416c

func X子文本替换_函数

func X子文本替换_函数(回调函数 func(文件路径, content string) string, 文件路径 string) error

X子文本替换_函数 使用回调函数 `f` 替换文件 `path` 中的内容。 md5:033d4157195d29fc

func X字节长度转易读格式

func X字节长度转易读格式(文件大小 int64) string

X字节长度转易读格式 将大小 `raw` 格式化为更易读的形式。 md5:7b0eb2b4570b5bb2

func X弃用_OpenWithFlagPerm

func X弃用_OpenWithFlagPerm(path string, flag int, perm os.FileMode) (*os.File, error)

X弃用_OpenWithFlagPerm 使用自定义的 `flag` 和 `perm` 来打开文件/目录。 参数 `flag` 例如:O_RDONLY, O_RDWR, O_RDWR|O_CREATE|O_TRUNC 等。 参数 `perm` 例如:0600, 0666, 0777 等。 md5:1f44c05cc68654d8

func X弃用_ReadableSize

func X弃用_ReadableSize(路径 string) string

X弃用_ReadableSize 格式化给定路径(`path`)的文件大小,使其更易于人类阅读。 md5:04f6ed7d21e25298

func X弃用_Rename

func X弃用_Rename(src string, dst string) error

X弃用_Rename 是 Move 的别名。 参考 Move。 md5:f235456881c23527

func X截断

func X截断(路径 string, 长度 int) (错误 error)

X截断 将路径为`path`的文件截取到给定的大小`size`。 md5:fc49c34fbdada146

func X打开

func X打开(路径 string, 读写模式 int, 权限模式 os.FileMode) (*os.File, error)

X打开 用自定义的 `flag` 和 `perm` 打开文件或目录。参数 `flag` 类似于:O_RDONLY(只读),O_RDWR(读写),O_RDWR|O_CREATE|O_TRUNC 等。 md5:0cef38d8408ed250

func X打开并按只读模式

func X打开并按只读模式(路径 string) (*os.File, error)

X打开并按只读模式以只读方式打开文件/目录。 md5:7f50cf0f63b9e34e

func X打开并按默认权限

func X打开并按默认权限(路径 string, 读写模式 int) (*os.File, error)

X打开并按默认权限 使用默认权限和自定义`flag`打开文件/目录。默认的`perm`为0666。 参数`flag`类似于:O_RDONLY(只读),O_RDWR(读写),O_RDWR|O_CREATE|O_TRUNC(读写并创建或截断),等等。 md5:2e77d9a0acc43298

func X排序

func X排序(文件数组 []string) []string

X排序 按照目录 -> 文件的顺序对 `files` 进行排序。 请注意,`files` 列表中的项应该是绝对路径。 md5:78b3df91d9486a1b

func X易读格式转字节长度

func X易读格式转字节长度(大小文本 string) int64

X易读格式转字节长度 将格式化后的尺寸字符串转换为字节大小。 md5:b40fff33ad10f088

func X是否为空

func X是否为空(路径 string) bool

X是否为空 检查给定的 `path` 是否为空。 如果 `path` 是一个文件夹,它会检查其下是否存在任何文件。 如果 `path` 是一个文件,它会检查文件大小是否为零。

注意,如果 `path` 不存在,它将返回 true。 md5:1b96bff377b05eac

func X是否可写

func X是否可写(路径 string) bool

X是否可写 检查给定的 `path` 是否可写。

TODO 优化性能;使用 golang.org/x/sys 进行跨平台处理 md5:2b947cc78310d3f1

func X是否可读

func X是否可读(路径 string) bool

X是否可读 检查给定的 `path` 是否可读。 md5:1b38deb3c4c35233

func X是否存在

func X是否存在(路径 string) bool

X是否存在检查给定的`path`是否存在。 md5:523f33d374bd2841

func X是否存在文件

func X是否存在文件(路径 string) bool

X是否存在文件 检查给定的 `path` 是否存在文件,即不是目录。 注意,如果 `path` 不存在,它将返回 false。 md5:38595d733f36d367

func X是否存在目录

func X是否存在目录(路径 string) bool

X是否存在目录 检查给定的 `path` 是否为目录。 注意,如果 `path` 不存在,它将返回 false。 md5:c5b2468307c9c9e2

func X更改权限

func X更改权限(路径 string, 权限模式 os.FileMode) (错误 error)

X更改权限是os.X更改权限的别名。 请参阅os.X更改权限。 md5:edb0528fe01cdccd

func X枚举

func X枚举(目录 string, 匹配模式 string, 是否递归查找 ...bool) ([]string, error)

X枚举 返回给定 `path` 所有子文件的绝对路径, 如果 `recursive` 参数为真,它会递归扫描目录。

`pattern` 参数支持多个文件名模式,使用逗号 `,` 来分隔多个模式。

注意,它只返回文件,不包括目录。 md5:1d9c6ada055eaa05

func X枚举_函数

func X枚举_函数(目录 string, 匹配模式 string, 是否递归查找 bool, 匿名函数 func(目录 string) string) ([]string, error)

X枚举_函数 返回给定 `path` 的所有子文件的绝对路径, 如果参数 `recursive` 为 true,则会递归扫描目录。

`pattern` 参数支持多个文件名模式,使用逗号(',') 分隔多个模式。

参数 `recursive` 指定是否递归扫描 `path`,即如果子文件也是一个文件夹,它将把子文件路径添加到结果数组中。默认情况下为 false。

参数 `handler` 指定处理 `path` 和其子文件夹每个子文件路径的回调函数。如果 `handler` 返回空字符串,那么忽略该子文件路径;否则,将子文件路径添加到结果切片中。

注意,`handler` 中的参数 `path` 不是目录,而是文件。它只返回文件,不包括目录。 md5:036965ff87c95b63

func X枚举文件与目录

func X枚举文件与目录(目录 string, 匹配模式 string, 是否递归枚举 ...bool) ([]string, error)

X枚举文件与目录 返回给定`path`下的所有子文件的绝对路径, 如果给定的参数`recursive`为true,则递归扫描目录。

模式参数`pattern`支持多个文件名模式, 使用`,`符号分隔多个模式。 md5:1f662f1008f0113e

func X枚举文件与目录_函数

func X枚举文件与目录_函数(目录 string, 匹配模式 string, 是否递归枚举 bool, 回调函数 func(目录 string) string) ([]string, error)

X枚举文件与目录_函数 返回给定`path`下的所有子文件的绝对路径。 如果参数`recursive`为真,它将递归扫描目录。

参数`pattern`支持多个文件名模式,使用逗号分隔多个模式。

参数`recursive`指定是否递归扫描`path`。默认情况下,它是false,表示不递归。

参数`handler`指定了处理`path`及其子目录下每个子文件路径的回调函数。如果`handler`返回空字符串,将忽略子文件路径,否则将子文件路径添加到结果切片中。 md5:93774b4b752cee08

func X查找

func X查找(文件名 string, 优先级查找路径 ...string) (路径 string, 错误 error)

X查找 通过名称 `name` 在以下路径中搜索文件,按照优先级进行:优先搜索路径(prioritySearchPaths)、当前工作目录(Pwd())、自身目录(SelfDir())和主包路径(MainPkgPath())。如果找到,则返回文件的绝对路径;如果没有找到,则返回空字符串。 md5:4251b6145a87bd38

func X模糊查找

func X模糊查找(路径 string, 返回绝对路径 ...bool) ([]string, error)

X模糊查找 返回匹配 pattern 的所有文件名,如果没有匹配的文件,则返回 nil。pattern 的语法与 Match 中的相同。pattern 可以描述像 /usr/*/bin/ed(假设分隔符为 '/')这样的层次名称。

X模糊查找 忽略读取目录时发生的文件系统错误,如 I/O 错误。可能返回的唯一错误是 ErrBadPattern,当 pattern 格式不正确时。 md5:0baeeb8710df5d67

func X目录子文本替换

func X目录子文本替换(欲被替换的子文本, 用作替换的子文本, 目录, 匹配模式 string, 是否递归替换 ...bool) error

X目录子文本替换 替换给定路径下文件的内容。 参数 `pattern` 指定了需要被替换的文件模式。 如果参数 `recursive` 为真,它将递归地进行替换操作。 md5:d9b10978d6db3bce

func X目录子文本替换_函数

func X目录子文本替换_函数(回调函数 func(目录, content string) string, 目录, 匹配模式 string, 是否递归替换 ...bool) error

X目录子文本替换_函数 使用回调函数 `f` 替换路径 `path` 下的文件内容。 参数 `pattern` 指定了将被替换的文件模式。 如果 `recursive` 为 true,它会递归地进行替换。 md5:9bff4662f6d662c1

func X移动

func X移动(路径 string, 新路径 string) (错误 error)

X移动 将路径 `src` 重命名(移动)到 `dst`。 如果 `dst` 已经存在且不是一个目录,它将被替换。 md5:4bc635341db78f64

func X缓存读字节集

func X缓存读字节集(路径 string, 缓存时长 ...time.Duration) []byte

X缓存读字节集 通过`path`从缓存中返回给定文件的[]byte内容。 如果缓存中没有内容,它将从由`path`指定的磁盘文件中读取。 参数`expire`以秒为单位指定该文件内容的缓存时间。 md5:8b877378627c94a2

func X缓存读文本

func X缓存读文本(路径 string, 缓存时长 ...time.Duration) string

X缓存读文本 通过`path`从缓存中返回给定文件的字符串内容。如果缓存中没有内容,它将从指定的磁盘文件(由`path`提供)中读取。参数`expire`指定了该文件内容的缓存过期时间(以秒为单位)。 md5:ee3ca4011fe59d23

func X设置当前工作目录

func X设置当前工作目录(目录 string) (错误 error)

X设置当前工作目录 将当前工作目录更改为指定的目录。 如果发生错误,该错误将为 *PathError 类型。 md5:7bafb79d47f0c3b3

func X读字节集

func X读字节集(路径 string) []byte

X读字节集 将路径 `path` 对应的文件内容以 []byte 形式返回。 如果读取失败,则返回 nil。 md5:be06b7ebc28d3d98

func X读文本

func X读文本(路径 string) string

X读文本 以字符串形式返回路径 `path` 的文件内容。 如果读取失败,它将返回空字符串。 md5:3426170b655a7b9d

func X路径生成

func X路径生成(路径s ...string) string

X路径生成 使用当前系统的文件分隔符将字符串数组路径连接起来。 md5:349ebcda51de0442

func X追加字节集

func X追加字节集(路径 string, 字节集 []byte) error

X追加字节集 将二进制`content`追加到`path`指定的文件中。 如果该文件不存在,它会递归创建`path`指定的文件。 md5:c5f2a5eb57487328

func X追加文本

func X追加文本(路径 string, 文本 string) error

X追加文本 将字符串 `content` 追加到文件 `path` 中。 如果文件 `path` 不存在,它会递归创建该文件。 md5:55f7095d64183741

func X逐行读字节集_函数

func X逐行读字节集_函数(文件路径 string, 回调函数 func(字节集 []byte) error) error

X逐行读字节集_函数 逐行读取文件内容,并将每一行作为 []byte 类型传递给回调函数 `callback`。 它会匹配以字符 '\r' 或 '\n' 分隔的每一行文本,并去除任何尾随的换行标记。

注意,传递给回调函数的参数可能是一个空值,并且即使最后一行非空行没有换行标记, 也会被传递给回调函数 `callback`。 md5:214fffa05bf19040

func X逐行读文本_函数

func X逐行读文本_函数(文件路径 string, 回调函数 func(文本 string) error) error

X逐行读文本_函数 逐行读取文件内容,将每一行作为字符串传递给回调函数 `callback`。 它匹配由 '\r' 或 '\n' 分隔的每一行文本,并移除任何尾随换行符。

注意,回调函数接收到的参数可能为空值,即使最后一行没有换行符,也会将其作为非空行传递给 `callback` 函数。 md5:462b920487edad37

Types

type X结构_复制选项

type X结构_复制选项 struct {
	// 在源文件内容复制到目标文件后,自动调用文件同步。 md5:ef1f9250b5fdabe3
	Sync bool

	// 保留源文件的模式到目标文件。如果为true,Mode属性将没有意义。
	// md5:681b0704991c814c
	PreserveMode bool

	// 创建目标文件的模式。
	// 如果PreserveMode为false,默认的文件模式是DefaultPermCopy。
	// md5:e495278ff0787785
	Mode os.FileMode
}

X结构_复制选项 是 Copy* 函数的选项。 md5:1863c87f867e036e

Jump to

Keyboard shortcuts

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