龙行博客

走路看风景,经历看人生,岁月留痕迹,人生留轨迹,17的历史,18的豪情,时间的匆忙,人生的风景,放开心胸往前走,成功再远行,放开理想往前走,梦想再行动。
现在位置:首页 > 编程语言 > Golang > Golang-os包文件常用操作整理

Golang-os包文件常用操作整理

龙行    Golang    2020-6-25    260    0评论    

度娘到处都是,整理下吧。

package main

import (
   "fmt"
   "os"
   "path"
   "path/filepath"
)

func main(){
   /*
   文件操作:
   1.路径:
      相对路径: relative
         ab.txt  相对于当前工程
         . 当前目录
         ..上一层
      绝对路径: absolute
         /www/abb/a.txt
    */
   //路径
   fileName := "D:\\work\\go\\aa.txt"
   fileName2 := "ab.txt"
   fmt.Println(filepath.IsAbs(fileName))    //是否绝对路径
   fmt.Println(filepath.IsAbs(fileName2))   //是否绝对路径
   fmt.Println(filepath.Abs(fileName))    //获取绝对路径
   fmt.Println(filepath.Abs(fileName2))

   fmt.Println("获取父目录:",path.Join(fileName,".."))
   //创建文件夹
   //err := os.Mkdir("D:\\work\\go\\hhhh",os.ModePerm)
   //if err != nil {
   // fmt.Println("err:",err)
   // return
   //}
   fmt.Println("文件夹创建成功")

   //创建多层文件夹
   err2 := os.MkdirAll("D:\\work\\go\\hhhh\\aa\\ss",os.ModePerm)
   if err2 != nil {
      fmt.Println("err2:",err2)
      return
   }
   fmt.Println("多层文件创建成功")

   //创建文件
   //Create采用模式0666(任何人都可读写,不可执行)
   file,err3 := os.Create("D:\\work\\go\\ab.txt")
   if err3 != nil {
      fmt.Println("err:", err3)
      return
   }
   fmt.Println(file)

   //相对当前路径创建文件
   file2,err4 := os.Create(fileName2)
   if err4 != nil {
      fmt.Println(err4)
      return
   }
   fmt.Println(file2)

   /**
   文件的操作  os.OpenFile()
   第一个参数:文件名称路径
   第二个参数: 文件的打开方式
      O_RDONLY int = syscall.O_RDONLY // 只读模式打开.
      O_WRONLY int = syscall.O_WRONLY // 只写打开文件.
      O_RDWR   int = syscall.O_RDWR   // 读写模式打开文件.
      // 下面的控制行为.
      O_APPEND int = syscall.O_APPEND // 在写文件时追加数据.
      O_CREATE int = syscall.O_CREAT  // 如果不存在,创建一个新文件.
      O_EXCL   int = syscall.O_EXCL   // 使用O_CREATE时,文件必须不存在.
      O_SYNC   int = syscall.O_SYNC   // 打开同步I/O.
      O_TRUNC  int = syscall.O_TRUNC  // 打开时截断常规可写文件.
   第三个参数:文件的权限: 文件不存在创建文件,需要指定权限

    */

   file4,err5 := os.OpenFile(fileName,os.O_RDONLY|os.O_WRONLY,os.ModePerm)
   if err5 != nil {
      fmt.Println("err5:",err5)
   }
   fmt.Println(file4)
   //关闭文件
   file4.Close()

   //删除文件或文件夹(目录必须是空)
   //Remove
   //RemoveAll
   err6 := os.Remove(fileName)
   if err6 != nil{
      fmt.Println("err6",err6)
      return
   }
   fmt.Println("删除文件夹成功。。")
}


评论一下 分享本文 赞助站长

赞助站长X

扫码赞助站长
联系站长
龙行博客
  • 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
  • 本文网址:https://www.liaotaoo.cn/367.html
  • 上篇文章:Golang简单写文件操作的四种方法
  • 下篇文章:Golang时间包time常用方法整理
  • go golang
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论
快捷导航
联系博主
在线壁纸
给我留言
四四五五
音乐欣赏
返回顶部