Go语言file操作

Go语言file操作

文件操作:

1.路径:相对路径:relative (相对于当前工程)
	   		 绝对路径:absolute   F:/a.txt
	        . 当前目录
 	        .. 上一层目录
//1、路径
	fileName1:="F:/a.txt"
	fileName2:="a.txt"
	fmt.Println(filepath.IsAbs(fileName1)) //true
	fmt.Println(filepath.IsAbs(fileName2)) //false
	fmt.Println(filepath.Abs(fileName1))  //F:\a.txt
	fmt.Println(filepath.Abs(fileName2))  //F:\golang\project\src\go_code\study\fileInfo\a.txt

	fmt.Println("获取父目录:",path.Join(fileName1,"..")) //获取父目录: F:
2.创建文件夹,如果文件夹存在,创建失败
	os.Mkdir(),创建一层
	os.MkdirAll(),可以创建多层
//2、创建文件夹
	//只能创建一层文件夹
	err:=os.Mkdir("F:/golang/aaa",os.ModePerm)
	if err != nil {
		fmt.Println("err:",err)
		return
	}
	fmt.Println("文件夹创建成功...")
	//能创建多层文件夹
	err=os.MkdirAll("F:/golang/bb/cc/dd",os.ModePerm)
	if err != nil {
		fmt.Println("err:",err)
		return
	}
	fmt.Println("多层文件夹创建成功..")
3.创建文件,Create采用模式0666(任何人都可以读写,不可执行)创建一个名为name的文件,如果文件存在则将它置为空文件
		  创建相对路径的文件,是以当前工程为参照
	      os.Create(),创建文件
//3、创建文件:Create采用模式0666(任何人都可以读写,不可执行)
	//创建一个名为name的文件,如果文件存在则将它置为空文件
	file1,err :=os.Create("F:/golang/abc.txt")
	if err != nil {
		fmt.Println("err:",err)
		return
	}
	fmt.Println(file1)  //&{0xc00007c780}
4.打开文件,让当前的程序,和指定的文件之间建立一个连接
	os.Open(filename)
	os.OpenFile(filename,mode,perm)
//4、打开文件
	//只读
	file2,err:=os.Open(fileName1)
	if err != nil {
		fmt.Println("err:",err)
		return
	}
	fmt.Println(file2)    
	/*
	第一个参数:文件名称
	第二个参数:文件的打开方式
	const (
		// Exactly one of O_RDONLY, O_WRONLY, or O_RDWR must be specified.
		O_RDONLY int = syscall.O_RDONLY // open the file read-only.
		O_WRONLY int = syscall.O_WRONLY // open the file write-only.
		O_RDWR   int = syscall.O_RDWR   // open the file read-write.
		// The remaining values may be or'ed in to control behavior.
		O_APPEND int = syscall.O_APPEND // append data to the file when writing.
		O_CREATE int = syscall.O_CREAT  // create a new file if none exists.
		O_EXCL   int = syscall.O_EXCL   // used with O_CREATE, file must not exist.
		O_SYNC   int = syscall.O_SYNC   // open for synchronous I/O.
		O_TRUNC  int = syscall.O_TRUNC  // truncate regular writable file when opened.
	)
	第三个参数:文件的权限:文件不存在创建文件,需要指定权限
	 */
	file3,err:=os.OpenFile(fileName1,os.O_RDONLY|os.O_WRONLY,os.ModePerm)
	if err != nil {
		fmt.Println("err:",err)
		return
	}
	fmt.Println(file3)
5.关闭文件:程序和文件之间的链接断开
	file.Close()	
//5、关闭文件
	file3.Close()
6.删除文件或目录:慎用
	os.Remove(),删除文件或空目录
	os.RemoveAll(),删除所有
//6.删除文件夹或文件
	err=os.Remove("F:/golang/abc.txt")
	if err != nil {
		fmt.Println("err:",err)
		return
	}
	fmt.Println("删除文件成功!")

7.获取文件 :os.Stat()

//获取文件
	fireInfo ,err :=os.Stat("F:/a.txt")
	if err !=nil{
		fmt.Println("err:",err)
		return
	}
	//文件类型
	fmt.Printf("%T\n",fireInfo)  //*os.fileStat
	//文件名
	fmt.Println(fireInfo.Name())   //a.txt
	//文件大小
	fmt.Println(fireInfo.Size())   //3
	//是否是目录
	fmt.Println(fireInfo.IsDir())   //false
	//最后修改文件时间
	fmt.Println(fireInfo.ModTime())  //
2022-03-18 16:34:19.2974303 +0800 CST
	//权限
	/*
	- 表示文件
	d 表示目录
	后面九位分别表示用户,组,其他用户对应的权限
	 */
	fmt.Println(fireInfo.Mode())  //-rw-rw-rw-

感谢观看!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值