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. 20220724-Java的封装相关

    目录 含义 常见使用方法 个人理解 含义 封装 (encapsulation) 指隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别. 常见使用方法 class Pers ...

  2. Odoo14 一些用的熟手的函数

    # Odoo14 一些用的熟手的函数 # from odoo.tools import config # 这是直接访问配置文件,也就是当你执行./odoo-bin -c odoo.cfg的时候 # c ...

  3. 第三讲 Linux测试

    3.1 Linux操作系统定义 Ø我们为什么要学习这个linux系统呢? 那是因为我们很多的服务都放在这个linux系统,那为什么很多服务都要放到这个linux系统?这是因为linux系统好,它系统稳 ...

  4. 分享一款免费OPC UA服务器

    OPC UA基于OPC基金会提供的新一代技术,提供安全,可靠和独立于厂商的,实现原始数据和预处理的信息从制造层级到生产计划或ERP层级的传输.通过OPC UA,所有需要的信息在任何时间,任何地点对每个 ...

  5. 总结-DSU ON TREE(树上启发式合并)

    考试遇到一道题: 有一棵n个点的有根树,每个点有一个颜色,每次询问给定一个点\(u\)和一个数\(k\),询问\(u\)子是多少个不同颜色节点的\(k\)级祖先.n<=500000. 显然对每一 ...

  6. 用HTTP服务的方式集成learned cardinality estimate方法进 Postgresql

    代码地址:postgresql-13.1-ml: Integration of CardEst Methods into PostgreSQL by HTTP Server (github.com) ...

  7. HCNP Routing&Switching之MAC地址防漂移

    前文我们了解了二层端口安全技术相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16631222.html:今天我们来聊一聊MAC地址防漂移技术: 首先我 ...

  8. Mybatis的ResultMap与limit分页查询

    ResultMap主要解决的是:属性名和字段不一致 如果在pojo中设置的是一个名字,在数据库上又是另一个名字,那么查询出来的结果或者其他操作的结果就为null. //在pojo中 private S ...

  9. Qt 创建按钮动画

    1 封装自定义按钮 myPushBttton 2 构造函数 (默认图片,按下后显示图片) 3 测试开始按钮 4 开始制作特效 5 zoom1 向下弹跳 6 zoom2 向上弹跳 代码如下 main.h ...

  10. ar9485 win10 笔记本电脑 无线网间歇性掉线

    问题  新安装了系统,刚开始上网正常,下载东西或者待机一段时间后掉线了. wifi都能搜到,就是连不上,重启电脑可以解决,但是每次重启很麻烦,必须找到治本的方法. 排除问题 1.手机连接没有问题,排除 ...