# Fileutil fileutil包支持文件基本操作。
## 源码: - [https://github.com/duke-git/lancet/blob/main/fileutil/file.go](https://github.com/duke-git/lancet/blob/main/fileutil/file.go) ## 用法: ```go import ( "github.com/duke-git/lancet/v2/fileutil" ) ``` ## 目录 - [ClearFile](#ClearFile) - [CreateFile](#CreateFile) - [CreateDir](#CreateDir) - [CopyFile](#CopyFile) - [FileMode](#FileMode) - [MiMeType](#MiMeType) - [IsExist](#IsExist) - [IsLink](#IsLink) - [IsDir](#IsDir) - [ListFileNames](#ListFileNames) - [RemoveFile](#RemoveFile) - [ReadFileToString](#ReadFileToString) - [ReadFileByLine](#ReadFileByLine) - [Zip](#Zip) - [UnZip](#UnZip) ## 文档 ### ClearFile清空文件内容
函数签名: ```go func ClearFile(path string) error ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { err := fileutil.ClearFile("./test.txt") if err != nil { fmt.Println(err) } } ``` ### CreateFile创建文件,创建成功返回true, 否则返回false
函数签名: ```go func CreateFile(path string) bool ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { isCreatedSucceed := fileutil.CreateFile("./test.txt") fmt.Println(isCreatedSucceed) } ``` ### CreateDir使用绝对路径创建嵌套目录,例如/a/, /a/b/
函数签名: ```go func CreateDir(absPath string) error ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { err := fileutil.CreateDir("/a/") fmt.Println(err) } ``` ### CopyFile拷贝文件,会覆盖原有的文件
函数签名: ```go func CopyFile(srcFilePath string, dstFilePath string) error ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { err := fileutil.CopyFile("./test.txt", "./test_copy.txt") if err != nil { fmt.Println(err) } } ``` ### FileMode获取文件mode信息
函数签名: ```go func FileMode(path string) (fs.FileMode, error) ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { mode, err := fileutil.FileMode("./test.txt") if err != nil { fmt.Println(err) } fmt.Println(mode) } ``` ### MiMeType获取文件mime类型, 'file'参数的类型必须是string或者*os.File
函数签名: ```go func MiMeType(file any) string ``` 例子: ```go package main import ( "fmt" "os" "github.com/duke-git/lancet/v2/fileutil" ) func main() { type1 := fileutil.MiMeType("./test.txt") fmt.Println(type1) //text/plain; charset=utf-8 f, _ := os.Open("./file.go") type2 := fileutil.MiMeType(f) fmt.Println(type2) //text/plain; charset=utf-8 } ``` ### IsExist判断文件或目录是否存在
函数签名: ```go func IsExist(path string) bool ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { fileutil.CreateFile("./test.txt") isFileExist := fileutil.IsExist("./test.txt") fmt.Println(isFileExist) //true } ``` ### IsLink判断文件是否是符号链接
函数签名: ```go func IsLink(path string) bool ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { isLinkFile := fileutil.IsLink("./test.txt") fmt.Println(isLinkFile) //false } ``` ### IsDir判断参数是否是目录
函数签名: ```go func IsDir(path string) bool ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { isDir := fileutil.IsDir("./") fmt.Println(isDir) //true isDir = fileutil.IsDir("./test.txt") fmt.Println(isDir) //false } ``` ### ListFileNames返回目录下所有文件名
函数签名: ```go func ListFileNames(path string) ([]string, error) ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { fileNames, _ := fileutil.ListFileNames("./") fmt.Println(fileNames) } ``` ### RemoveFile删除文件
函数签名: ```go func RemoveFile(path string) error ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { err := fileutil.RemoveFile("./test.txt") if err != nil { fmt.Println(err) } } ``` ### ReadFileToString读取文件内容并返回字符串
函数签名: ```go func ReadFileToString(path string) (string, error) ``` 例子: ```go package main import ( "fmt" "os" "github.com/duke-git/lancet/v2/fileutil" ) func main() { path := "./test.txt" fileutil.CreateFile(path) f, _ := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777) f.WriteString("hello world") content, _ := fileutil.ReadFileToString(path) fmt.Println(content) //hello world } ``` ### ReadFileByLine按行读取文件内容,返回字符串切片包含每一行
函数签名: ```go func ReadFileByLine(path string)([]string, error) ``` 例子: ```go package main import ( "fmt" "os" "github.com/duke-git/lancet/v2/fileutil" ) func main() { path := "./text.txt" fileutil.CreateFile(path) f, _ := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777) defer f.Close() f.WriteString("hello\nworld") contents, _ := fileutil.ReadFileByLine(path) fmt.Println(contents) //[]string{"hello", "world"} } ``` ### Zipzip压缩文件, fpath参数可以是文件或目录
函数签名: ```go func Zip(fpath string, destPath string) error ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { err := fileutil.Zip("./test.txt", "./test.zip") if err != nil { fmt.Println(err) } } ``` ### UnZipzip解压缩文件并保存在目录中
Signature: ```go func UnZip(zipFile string, destPath string) error ``` 例子: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/fileutil" ) func main() { err := fileutil.Zip("./test.zip", "./unzip/test.txt") if err != nil { fmt.Println(err) } } ```