go-code-文件操作

文件是否存在判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 自己写一个文件是否存在判断
func PathExists(path string)(bool, error) {
var _, err = os.Stat(path)
if err == nil {
// 如果返回的错误为nil,说明文件或文件夹存在
return true, nil
}

if os.IsNotExist(err) {
// 如果返回的错误类使用os.IsNotExist()判断为true,说明文件或文件夹不存在
return false, nil
}

// 如果返回错误为其他类型,则不确定是否存在
return false, err
}

文件复制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 自己编写一个函数,实现文件复制
func CopyFile(dstFileName string, srcFileName string) (written int64, err error) {

// 打开源文件
srcFile, err := os.Open(srcFileName)
if err != nil {
fmt.Println("打开文件报错", err)
return
}

// 关闭文件
defer srcFile.Close()

reader := bufio.NewReader(srcFile)

// 打开目的文件
dstFile, err := os.OpenFile(dstFileName, os.O_WRONLY | os.O_CREATE, 0666)
if err != nil {
fmt.Println("打开文件报错", err)
return
}

writer := bufio.NewWriter(dstFile)
defer dstFile.Close()

return io.Copy(writer, reader)
}