# Fileutil Package fileutil implements some basic functions for file operations.
## Source: [https://github.com/duke-git/lancet/blob/v1/fileutil/file.go](https://github.com/duke-git/lancet/blob/v1/fileutil/file.go)
## Usage: ```go import ( "github.com/duke-git/lancet/fileutil" ) ```
## Index - [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)
## Documentation ### ClearFile

Clear the file content, write empty string to the file.

Signature: ```go func ClearFile(path string) error ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { err := fileutil.ClearFile("./test.txt") if err != nil { fmt.Println(err) } } ``` ### CreateDir

Create directory in absolute path. param `absPath` like /a/, /a/b/.

Signature: ```go func CreateDir(absPath string) error ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { err := fileutil.CreateDir("/a/") fmt.Println(err) } ``` ### CreateFile

Create file in path. return true if create succeed.

Signature: ```go func CreateFile(path string) bool ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { isCreatedSucceed := fileutil.CreateFile("./test.txt") fmt.Println(isCreatedSucceed) } ``` ### CopyFile

Copy src file to dest file. If dest file exist will overwrite it.

Signature: ```go func CopyFile(srcFilePath string, dstFilePath string) error ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { err := fileutil.CopyFile("./test.txt", "./test_copy.txt") if err != nil { fmt.Println(err) } } ``` ### FileMode

Return file mode infomation.

Signature: ```go func FileMode(path string) (fs.FileMode, error) ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { mode, err := fileutil.FileMode("./test.txt") if err != nil { fmt.Println(err) } fmt.Println(mode) } ``` ### MiMeType

Get file mime type, 'file' param's type should be string or *os.File.

Signature: ```go func MiMeType(file interface{}) string ``` Example: ```go package main import ( "fmt" "os" "github.com/duke-git/lancet/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

Checks if a file or directory exists.

Signature: ```go func IsExist(path string) bool ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { fileutil.CreateFile("./test.txt") isFileExist := fileutil.IsExist("./test.txt") fmt.Println(isFileExist) //true } ``` ### IsLink

Checks if a file is symbol link or not.

Signature: ```go func IsLink(path string) bool ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { isLinkFile := fileutil.IsLink("./test.txt") fmt.Println(isLinkFile) //false } ``` ### IsDir

Checks if the path is directy or not.

Signature: ```go func IsDir(path string) bool ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { isDir := fileutil.IsDir("./") fmt.Println(isDir) //true isDir = fileutil.IsDir("./test.txt") fmt.Println(isDir) //false } ``` ### ListFileNames

List all file names in given path.

Signature: ```go func ListFileNames(path string) ([]string, error) ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { fileNames, _ := fileutil.ListFileNames("./") fmt.Println(fileNames) } ``` ### RemoveFile

Remove the file of path.

Signature: ```go func RemoveFile(path string) error ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { err := fileutil.RemoveFile("./test.txt") if err != nil { fmt.Println(err) } } ``` ### ReadFileToString

Return string of file content.

Signature: ```go func ReadFileToString(path string) (string, error) ``` Example: ```go package main import ( "fmt" "os" "github.com/duke-git/lancet/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

Read file line by line, and return slice of lines

Signature: ```go func ReadFileByLine(path string)([]string, error) ``` Example: ```go package main import ( "fmt" "os" "github.com/duke-git/lancet/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"} } ``` ### Zip

Create a zip file of fpath, fpath could be a file or a directory.

Signature: ```go func Zip(fpath string, destPath string) error ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { err := fileutil.Zip("./test.txt", "./test.zip") if err != nil { fmt.Println(err) } } ``` ### UnZip

Unzip the file and save it to dest path.

Signature: ```go func UnZip(zipFile string, destPath string) error ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/fileutil" ) func main() { err := fileutil.Zip("./test.zip", "./unzip/test.txt") if err != nil { fmt.Println(err) } } ```