1 package main
2
3 import (
4 "fmt"
5 "os"
6 "path"
7 "path/filepath"
8 )
9
10 func main() {
11 fileInfo, err := os.Stat("C:\\Users\\fcl18\\Desktop\\发言.txt")
12 if err != nil {
13 fmt.Println("err", err)
14 return
15 }
16 fmt.Println(fileInfo)
17
18 fmt.Println(fileInfo.Name()) //文件名
19 fmt.Println(fileInfo.Size()) //文件大小 单位 字节
20 fmt.Println(fileInfo.IsDir()) // 判断是否为目录
21 fmt.Println(fileInfo.ModTime()) //修改时间
22 fmt.Println(fileInfo.Mode()) //权限
23
24 filename1 := "C:\\Users\\fcl18\\Desktop\\发言.txt"
25 filename2 := "ab.txt"
26 //判断是否为绝对路径
27 fmt.Println(filepath.IsAbs(filename1))
28 fmt.Println(filepath.IsAbs(filename2))
29 //获得路径地址 如果是相对路径就会根据main所在目录拼接成完整的目录
30 fmt.Println(filepath.Abs(filename1))
31 fmt.Println(filepath.Abs(filename2))
32
33 //获取父目录
34 fmt.Println("父目录", path.Join(filename1, ".."))
35
36 //创建目录 如果已经存在不会再创建
37 //Mkdir只能创建一层文件夹
38 err1 := os.Mkdir("E:\\网页\\招生+报名\\aa", os.ModePerm)
39 if err1 != nil {
40 fmt.Println("err", err)
41 return
42 }
43 fmt.Println("文件夹创建成功")
44 //MkdirAll可以全部创建
45 err2 := os.MkdirAll("E:\\网页\\招生+报名\\aa\\bb\\cc\\dd", os.ModePerm)
46 if err2 != nil {
47 fmt.Println("err", err2)
48 return
49 }
50 fmt.Println("多层文件夹创建成功")
51
52 //创建文件
53 file1, err3 := os.Create("E:\\网页\\招生+报名\\aa\\a.txt")
54 if err3 != nil {
55 fmt.Println("err", err3)
56 return
57 }
58 fmt.Println(file1.Name())
59 //相对目录
60 file2, err4 := os.Create(filename2)
61 if err4 != nil {
62 fmt.Println("err", err4)
63 return
64 }
65 fmt.Println(file2.Name())
66
67 // file操作
68 file3, err5 := os.Open(filename1) //只读
69 if err5 != nil {
70 fmt.Println("err", err5)
71 return
72 }
73 fmt.Println(file3)
74
75 /*
76 openFile
77 第一个参数 文件目录地址
78
79 第二个参数:文件打开方式
80 O_RDONLY int = syscall.O_RDONLY // open the file read-only.
81 O_WRONLY int = syscall.O_WRONLY // open the file write-only.
82 O_RDWR int = syscall.O_RDWR // open the file read-write.
83 // The remaining values may be or'ed in to control behavior.
84 O_APPEND int = syscall.O_APPEND // append data to the file when writing.
85 O_CREATE int = syscall.O_CREAT // create a new file if none exists.
86 O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist.
87 O_SYNC int = syscall.O_SYNC // open for synchronous I/O.
88 O_TRUNC int = syscall.O_TRUNC // truncate regular writable file when opened.
89
90 第三个参数:文件权限 文件不存在时创建 需指定权限
91 */
92 file4, err6 := os.OpenFile(filename1, os.O_RDONLY|os.O_WRONLY, os.ModePerm)
93 if err6 != nil {
94 fmt.Println("err", err6)
95 return
96 }
97 fmt.Println(file4.Name())
98
99 //关闭文件
100 file4.Close()
101
102 //删除文件或文件夹
103 //Remove只能删除单层为空的目录
104 err7 := os.Remove("E:\\网页\\招生+报名\\aa\\a.txt")
105 if err7 != nil {
106 fmt.Println("err", err7)
107 return
108 }
109 fmt.Println("删除成功")
110 //RemoveAll不管目录是否为空都会删除
111 err8 := os.RemoveAll("E:\\网页\\招生+报名\\aa")
112 if err8 != nil {
113 fmt.Println("err", err8)
114 return
115 }
116 fmt.Println("删除成功")
117
118 }

凑字数

凑字数凑字数

凑字数凑字数凑字数

凑字数凑字数凑字数凑字数

凑字数凑字数凑字数凑字数凑字数

研一入坑Go 文件操作的更多相关文章

  1. 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程

    反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑)   背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮 ...

  2. webpack入坑之旅(五)加载vue单文件组件

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  3. Linux中gz文件操作遇到的一些技巧和坑

    目录 不解压情况下获取gz超大文件的前/后几行? Perl读入gz文件操作? 不能直接通过wc -l 来统计gz文件的行数 前提是gz文件超大,如上百G,肯定不能直接解压来做. 不解压情况下获取gz超 ...

  4. webpack入坑之旅(二)loader入门

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack 在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  5. gulp入坑系列(2)——初试JS代码合并与压缩

    在上一篇里成功安装了gulp到项目中,现在来测试一下gulp的合并与压缩功能 gulp入坑系列(1)--安装gulp(传送门):http://www.cnblogs.com/YuuyaRin/p/61 ...

  6. 《Java核心技术卷二》笔记(二)文件操作和内存映射文件

    文件操作 上一篇已经总结了流操作,其中也包括文件的读写.文件系统除了读写以为还有很多其他的操作,如复制.移动.删除.目录浏览.属性读写等.在Java7之前,一直使用File类用于文件的操作.Java7 ...

  7. RxSwift 入坑好多天 - 终于有了一点理解

    一.前言 江湖上都在说现在就要赶紧学 swift 了,即将是 swift 的天下了.在 api 变化不大的情况下,swift 作为一门新的语言,集众家之所长,普通编码确实比 oc 要好用的多了 老早就 ...

  8. 【Xbox one S】开箱&开机&初入坑心得

    再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...

  9. Linux探索之路1---CentOS入坑笔记整理

    前言 上次跟运维去行方安装行内环境,发现linux命令还是不是很熟练.特别是用户权限分配以及vi下的快捷操作.于是决定在本地安装一个CentOS虚拟机,后面有时间就每天学习一点Linux常用命令. 作 ...

随机推荐

  1. YII地址切换

    以/开头表示跳出当前控制器 例如 return $this->render('/code/login'// 跳出当前控制器,进入Code下login视图 ,['model' => $mod ...

  2. 基于Vue.js2.6结合h5来实现视频播放画中画技术(Picture-in-Picture)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_125 在开发基于vue.js的在线视频教育平台的时候,我们会注意一个小问题,就是如果用户在观看播放视频的同时,也会往下拖动窗口浏览 ...

  3. 当我们进行性能优化,我们在优化什么(LightHouse优化实操)

    好的互联网产品不仅仅在功能上要高人一筹,在性能层面也需要出类拔萃,否则金玉其外败絮其中,页面是美轮美奂了,结果首屏半天加载不出来,难免让用户乘兴而来,败兴而归. 幸运的是,前端的性能优化有诸多有迹可循 ...

  4. 新一代大数据任务调度系统 - Apache DolphinScheduler 1.3.4 发布,推荐下载

    | 本文编辑:朱桐 新一代大数据任务调度 - Apache DolphinScheduler(incubator) 在经过社区 30 多位小伙伴的贡献与努力下于发布了 1.3.4 版本,1.3.4 作 ...

  5. 新一代大数据任务调度 - Apache DolphinScheduler喜提十大开源新锐项目 & 最具人气项目

    经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...

  6. Python逆向爬虫之scrapy框架,非常详细

    爬虫系列目录 目录 Python逆向爬虫之scrapy框架,非常详细 一.爬虫入门 1.1 定义需求 1.2 需求分析 1.2.1 下载某个页面上所有的图片 1.2.2 分页 1.2.3 进行下载图片 ...

  7. 【ARK UI】HarmonyOS ETS 资源管理基本使用

    ​代码实现 api讲解 getStringArray getStringArray(resId: number, callback: AsyncCallback<Array>): void ...

  8. Web 前端实战:Gitee 贡献图

    前言 这次要做的 Web 前端实战是一个 Gitee 个人主页下的贡献图(在线 Demo),偶尔做一两个,熟悉熟悉 JS 以及 jQ.整体来说这个案例并不难,主要是控制第一个节点以及最后一个节点处于星 ...

  9. 如何免费申请js.org二级域名

    最近看到很多人都去申请了js.org的域名,我就来写个教程吧! (本教程只注重于申请域名,而不是如何使用Github) 看看成品:https://butterfly.js.org/ 官网是这么写的: ...

  10. SUSE Linux Enterprise Server 12 使用二进制文件安装docker

    Docker-CE in SUSE 虽然使用zypper添加源也能安装,不过我在SLES 12sp5 上安装时发现好多命令还需要自己手动软连接,干脆网上找了找文档,再自己小改下,用二进制部署,也是可以 ...