filex

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2023 License: MIT Imports: 7 Imported by: 26

Documentation

Overview

Package filex Create on 2022/7/8 @author xuzhuoxi

Index

Constants

View Source
const (
	LittleFile = 32 * 1024
	MiddleFile = 256 * 1024
)
View Source
const (
	ExtSeparator         = '.' // 扩展名分隔符
	ExtSeparatorStr      = "." // 扩展名分隔符
	PathListSeparator    = ';' // 路径列表分隔符
	PathListSeparatorStr = ";" // 路径列表分隔符
)
View Source
const (
	UnixSeparator       = '/'  // Linux路径级分隔符
	UnixSeparatorStr    = "/"  // Linux路径级分隔符
	WindowsSeparator    = '\\' // Windows路径级分隔符
	WindowsSeparatorStr = "\\" // Windows路径级分隔符
)

Variables

View Source
var (
	ErrRootPath   = errors.New("Path is root. ")
	ErrNoUpperDir = errors.New("No upper dir. ")
)
View Source
var (
	ErrPathNotExist = errors.New("Path is not exist. ")
)

Functions

func CheckExt

func CheckExt(path string, extName string) bool

CheckExt 检查文件名的扩展名, 支持带"."

func Combine

func Combine(dir string, add string, subs ...string) string

Combine 合并路径 不检测有效性

func CompleteDir

func CompleteDir(dirPath string, perm os.FileMode) error

CompleteDir 补全缺失目录路径

func CompleteParentPath

func CompleteParentPath(filePathStr string, perm os.FileMode) error

CompleteParentPath 根据文件路径补全缺失父目录路径 filePath必须绝对路径

func Copy

func Copy(srcFile string, dstFile string) (written int64, err error)

Copy 复制文件 根据文件大小选择不同的复制算法 要求目录路径的父目录存在

func CopyAuto

func CopyAuto(srcFile string, dstFile string, autoPerm os.FileMode) (written int64, err error)

CopyAuto 复制文件 根据文件大小选择不同的复制算法 如果目录路径的父目录不存在,自动补全

func CopyMod

func CopyMod(srcFile string, dstFile string, filePerm os.FileMode) (written int64, err error)

CopyMod 复制文件 根据文件大小选择不同的复制算法 同时设置新的FileMode

func CopyModAuto

func CopyModAuto(srcFile string, dstFile string, filePerm os.FileMode, autoPerm os.FileMode) (written int64, err error)

CopyModAuto 复制文件 根据文件大小选择不同的复制算法 同时设置新的FileMode 如果目录路径的父目录不存在,自动补全

func CopyModTo

func CopyModTo(srcFile string, targetDir string, filePerm os.FileMode) (written int64, err error)

CopyModTo 复制文件到指定目录 根据文件大小选择不同的复制算法 同时设置新的FileMode

func CopyModToAuto

func CopyModToAuto(srcFile string, targetDir string, filePerm os.FileMode, autoPerm os.FileMode) (written int64, err error)

CopyModToAuto 复制文件到指定目录 根据文件大小选择不同的复制算法 同时设置新的FileMode 如果目录路径的父目录不存在,自动补全

func CopyTo

func CopyTo(srcFile string, targetDir string) (written int64, err error)

CopyTo 复制文件到指定目录 根据文件大小选择不同的复制算法

func CopyToAuto

func CopyToAuto(srcFile string, targetDir string, autoPerm os.FileMode) (written int64, err error)

CopyToAuto 复制文件到指定目录 根据文件大小选择不同的复制算法 如果目录路径的父目录不存在,自动补全

func FormatPath

func FormatPath(path string) string

FormatPath 标准化路径(转为Linux路径) 转换为"/"形式路径 如果结果路径为目录,并以"/"结尾,清除"/" 不检测有效性

func GetExtWithDot

func GetExtWithDot(path string) string

GetExtWithDot 取文件扩展名,包含"."

func GetExtWithoutDot

func GetExtWithoutDot(path string) string

GetExtWithoutDot 取文件扩展名,不包含"."

func GetFileSize

func GetFileSize(filePath string) (uint64, error)

GetFileSize 取文件大小

func GetFolderSize

func GetFolderSize(dirPath string) (size uint64, err error)

GetFolderSize 取文件夹大小,递归全部文件的大小之和

func GetPathsAll

func GetPathsAll(dir string, filter PathFilter) (paths []string, err error)

GetPathsAll 遍历并根据筛选器获取全部路径(递归) 当filter=nil时,默认为命中 路径已进行FormatPath处理

func GetPathsInDir

func GetPathsInDir(dir string, filter PathFilter) (paths []string, err error)

GetPathsInDir 遍历指定目录,并根据筛选器获取全部路径 当filter=nil时,默认为命中 不对子目录内容与当前目录进行筛选

func GetShortName

func GetShortName(path string) string

GetShortName 取不包含扩展名的部分的文件名 不检查存在性 如果目录名字包含".",同样只截取"."前部分

func GetSize

func GetSize(path string) (uint64, error)

GetSize 取文件或文件夹大小

func GetUpDir

func GetUpDir(dir string) (upDir string, err error)

GetUpDir 取上级目录,如果没有目录分隔符,返回失败 根目录的上级目录为空,并返回失败 dir要求是经过FormatPath处理后的路径格式 注意:如果文件名或目录名中使用了"/"字符,会造成结果错误

func IsAbsFormat added in v1.0.2

func IsAbsFormat(path string) bool

IsAbsFormat 检查路径是否为绝对路径格式

func IsDir

func IsDir(path string) bool

IsDir 是否为文件夹

func IsEmptyDir

func IsEmptyDir(path string) bool

IsEmptyDir 是否为空文件夹

func IsEmptyFolder

func IsEmptyFolder(path string) bool

IsEmptyFolder 是否为空文件夹

func IsExist

func IsExist(path string) bool

IsExist 检查路径是否存在

func IsExtSeparator

func IsExtSeparator(c uint8) bool

func IsExtSeparatorStr

func IsExtSeparatorStr(str string) bool

func IsFile

func IsFile(path string) bool

IsFile 是否为文件

func IsFolder

func IsFolder(path string) bool

IsFolder 是否为文件夹

func IsListSeparator

func IsListSeparator(c uint8) bool

func IsListSeparatorStr

func IsListSeparatorStr(str string) bool

func IsRelativeFormat

func IsRelativeFormat(path string) bool

IsRelativeFormat 检查路径是否为相对路径格式

func IsUnixAbs added in v1.0.2

func IsUnixAbs(path string) bool

IsUnixAbs 检查路径是否为Unix绝对路径格式

func IsUnixSeparator

func IsUnixSeparator(c uint8) bool

func IsUnixSeparatorStr

func IsUnixSeparatorStr(str string) bool

func IsWinAbs added in v1.0.2

func IsWinAbs(path string) bool

IsWinAbs 检查路径是否为Windows绝对路径格式

func IsWindowsSeparator

func IsWindowsSeparator(c uint8) bool

func IsWindowsSeparatorStr

func IsWindowsSeparatorStr(str string) bool

func Move

func Move(srcPath string, dstPath string) error

Move 移动文件或目录 文件移动:保留原有属性 目录移动:保留原有属性,同时移动目录包含的文件及子目录 旧路径无效:忽略 新路径无效:忽略 新路径已存在:覆盖

func MoveAuto

func MoveAuto(srcPath string, dstPath string, autoPerm os.FileMode) error

MoveAuto 移动文件或目录 文件移动:保留原有属性 目录移动:保留原有属性,同时移动目录包含的文件及子目录 旧路径无效:忽略 新路径无效:补全 新路径已存在:覆盖

func MoveTo

func MoveTo(srcPath string, dstDir string) error

MoveTo 移动文件或目录到指定目录 文件移动:保留原有属性 目录移动:保留原有属性,同时移动目录包含的文件及子目录 旧路径无效:忽略 目标路径无效:忽略 目标已存在:覆盖

func MoveToAuto

func MoveToAuto(srcPath string, dstDir string, autoPerm os.FileMode) error

MoveToAuto 移动文件或目录 文件移动:保留原有属性 目录移动:保留原有属性,同时移动目录包含的文件及子目录 旧路径无效:忽略 目标路径为文件:忽略 目标路径无效:自动补全

func Remove

func Remove(path string) error

Remove 删除文件 或 删除空目录

func RemoveAll

func RemoveAll(path string) error

RemoveAll 删除全部 路径为文件时,删除文件 路径为目录时,删除目录

func RemoveByFilter

func RemoveByFilter(dir string, filter PathFilter) (count int, err error)

RemoveByFilter 使用PathFilter进行可选删除

func RemoveChildren

func RemoveChildren(dir string) error

RemoveChildren 清空目录内容 保留当前目录

func RemoveEmptyDir

func RemoveEmptyDir(dir string) (count int, err error)

RemoveEmptyDir 清除空目录 如果当前路径也为空目录,清除之 返回清除数量与错误

func RemoveFiles

func RemoveFiles(dir string) (count int, err error)

RemoveFiles 清空目录中全部文件 保留目录结构

func Split

func Split(path string) (formattedDir string, fileName string)

Split 拆分路为目录+文件, 或父级目录+当前目录 返回的目录格式经过FormatPath处理

func SplitFileName

func SplitFileName(path string) (shortName string, dotExt string, ext string)

SplitFileName 拆分文件名[shortName + dotExt + ext] shortName: 不带扩展名的文件名 dotExt: 带“.”的扩展名 ext: 不带“.”的扩展名

func ToUnixPath

func ToUnixPath(p string) string

ToUnixPath 格式化为Linux路径 如果结果路径为目录,并以"/"结尾,清除"/" 不检测有效性

func ToWindowsPath

func ToWindowsPath(p string) string

ToWindowsPath 格式化为Windows路径 如果结果路径为目录,并以"/"结尾,清除"/" 不检测有效性

func WalkAll

func WalkAll(path string, walkFn filepath.WalkFunc) error

WalkAll 遍历,包含自身与子目录的全部 返回的path已使用FormatPath处理 注意:在Walk过程中 不可以 对dir目录(包括子目录)中的文件进行增删

func WalkAllDirs added in v1.0.2

func WalkAllDirs(path string, walkFn filepath.WalkFunc) error

WalkAllDirs 遍历文件夹,包含自身与子目录 返回的path已使用FormatPath处理 注意:在Walk过程中 不可以 对dir目录(包括子目录)中的文件进行增删

func WalkAllFiles added in v1.0.2

func WalkAllFiles(path string, walkFn filepath.WalkFunc) error

WalkAllFiles 遍历文件,包含自身与子目录文件 返回的path已使用FormatPath处理 注意:在Walk过程中 不可以 对dir目录(包括子目录)中的文件进行增删

func WalkInDir

func WalkInDir(dir string, walkFn filepath.WalkFunc) error

WalkInDir 遍历指定目录 只对dir下一级文件或目录执行walkFn 返回的path已使用FormatPath处理 注意:WalkInDir 可以 对dir目录中的文件进行增删改

func WriteFile added in v1.0.1

func WriteFile(name string, data []byte, perm os.FileMode) error

WriteFile writes data to the named file, creating it if necessary. If the file does not exist, WriteFile creates it with permissions perm (before umask); otherwise WriteFile truncates it before writing, without changing permissions.

func WriteFileAppend added in v1.0.1

func WriteFileAppend(name string, data []byte, perm os.FileMode) error

WriteFileAppend writes data to the named file, creating it if necessary. If the file does not exist, WriteFile creates it with permissions perm (before umask); otherwise WriteFile append data to it, without changing permissions.

Types

type PathFilter

type PathFilter func(path string, info os.FileInfo) bool

Jump to

Keyboard shortcuts

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