开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:判断文件或目录存在】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9731
判断文件或目录存在
内容介绍
一、基本应用实例-方式二
二、代码运行
三、代码实现
四、判断文件是否存在
一、基本应用实例-方式二
编程一个程序,将一个文件的内容,写入到另外一个文件。注:这两个文件已经存在了。
也就是说有一个要求,把一个文件内容导入到另一个中去。
说明:
使用 ioutil.ReadFile / ioutil.WriteFile 完成写文件的任务.
二、代码运行
func main()
//将 d:/abc.txt 文件内容导入到 e:/kkk.txt
//1. 首先将 d:/abc.txt 内容读取到内存
//2.将读取到的内容写入 e:/kkk.txtfile1path:="d:/abc.txt"
file2Path:="e:/kkk.txt"
content, err := joutil.ReadFile(filelPath)
if err l= nil
//说明读取文件有错误fmt.Println("read file err=%v", err)
return
ioutil.WriteFile
此时点开 ioutil.WriteFile,
func ReadFile(filename string)(byte,error,)byte 是返回一个切片,error 刚才已经处理了。
func WriteFile(filename string, data jy byte,perm os.FileMode) error
在 Windows 下面,它是无效的,所以此时写成:
err = ioutil.WriteFile(file2Path, data, 0666)
if err != nil
fmt.Printf("write file error=%v\n",err)
此时运行,没有问题。
三、代码实现
代码整理为:
package main
import(
"fmt”
"io/ioutil"
func main() [
//将d:/abc.txt 文件内容导入到 e:k.txt
//1. 首先将 d:/abc.txt 内容读取到内存
//2.将读取到的内容写入e:k.txt
file1path:="d:/abc.txt"
file2Path:="e:k.txt"
data, err := ioutil.ReadFile(file1path)if err l= nil [
//说明读取文件有错误
fmt.Printf("read file err=%v\n", err) return
err = ioutil.WriteFile(file2Path, data, 0666)if err l= nil
fmt.Printf("write file error=%v\n",err)
四、判断文件是否存在
golang 判断文件或文件夹是否存在的方法为使用 os.Stat()函数返回的错误值进行判断:
1)如果返回的错误为 nil,说明文件或文件夹存在
2)如果返回的错误类型使用 os.IsNotExist()判断为 true,说明文件或文件夹不存在如果返回的错误为其它类型,则不确定是否在存在
//自己写了一个函数,用于判断文件或者目录是否存在。
func PathExists(path string) (bool, error) 《
_ err := os.Stat(path)
if err == nil 《
return true, nil
if os.IsNotExist(err) (
return false, nil
return false, err