goland 恢复已更改文件的操作


Posted in Golang onApril 28, 2021

1、查看历史更改文件

点击项目名,右键,选择Local History。

goland 恢复已更改文件的操作

或点击项目名再点击VXA,选择Local History。

goland 恢复已更改文件的操作

然后选择Show History

goland 恢复已更改文件的操作

2、恢复历史已更改文件

选择你想要恢复的文件,右键选择Revert,最后就会恢复到原来的位置了。

goland 恢复已更改文件的操作

补充:goland文件处理

golang是优秀的软件编程语言,由于golang很好的兼容各个系统,我经常使用golang写工具。

写工具经常会用到文件处理,io操作。

FileInfo接口

在遍历文件夹的时候回经常用到FileInfo接口

type FileInfo interface {
 Name() string       // 文件名称
 Size() int64        // 文件大小
 Mode() FileMode     // file mode bits
 ModTime() time.Time // modification time
 IsDir() bool        // 是否文件夹
 Sys() interface{}   // underlying data source (can return nil)
}

遍历文件

通过ioutil.ReadDir(src),可以读取到当前文件列表

func ReadDir(src string) {
 files, err := ioutil.ReadDir(src)
 if err != nil {
  fmt.Println(err)
  return
 }
 for _, file := range files {
  if file.IsDir() {
   // 是文件夹
  }else{
            // 是文件
        }
 }
}

遍历文件夹下所有文件

通过filepath.Walk方法递归读取文件夹和子文件,方便复制整个文件夹内容

func ReadDeepDir(src string) {
 err := filepath.Walk(src, func(path string, file os.FileInfo, err error) error {
  if file == nil {
   return err
  }
  fmt.Println(path)
  return nil
 })
 if err != nil {
  fmt.Printf(err.Error())
 }
}

路径操作相关方法

func dir(src string)  {
 // 获取路径指向文件夹名称
 filepath.Base(src)
 
 // 获取文件所在的路径
 filepath.Dir(src)
 
 // 获取文件扩展名
 filepath.Ext(src)
 
 // 获取文件名称
 name := strings.Replace(filepath.Base(src),filepath.Ext(src),"",1)
 
 // 绝对路径
 absPath,_ := filepath.Abs("")
 
 // 相对路径
 relPath,_ := filepath.Rel("","")
 
 // 路径拼接
 filepath.Join("basepath","appendpath")
}

文件操作

func operation(src string)  {
 // 创建文件夹
 _= os.Mkdir("xxx",os.ModePerm)
 
 // 删除单个文件,不能删除文件夹
 _ = os.Remove("xxx")
 
 // 删除文件夹或者文件
 _ = os.RemoveAll("xxx")
 
 // 重命名文件
 _ = os.Rename("xxx","qqqq")
}

使用ioutil文件读写

func fileop()  {
 // 读取文件,整个文件读取到内存,不能读取大文件
 ioutil.ReadFile("filename")
 // 文件写入,每次都会新创建文件写入所有的内容,所以会覆盖之前的文件
 ioutil.WriteFile("filename",[]byte{},os.ModePerm)
}

大文件的读写,相当于一个拷贝功能

func copy() {
 fr, err := os.Open("")
 if err != nil{
  fmt.Println("open err")
  return
 }
 defer fr.Close()
 
 fw, err := os.Create("")
 if err != nil {
  fmt.Println("create file error")
  return
 }
 buf := make([]byte, 1024)
 for {
  n, err := fr.Read(buf)
  if err != nil && err == io.EOF {
   fmt.Println("读完")
  }
  _,_=fw.Write(buf[:n])
 }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
go语言map与string的相互转换的实现
Apr 07 Golang
Go语言使用select{}阻塞main函数介绍
Apr 25 Golang
Go缓冲channel和非缓冲channel的区别说明
Apr 25 Golang
对Golang中的FORM相关字段理解
May 02 Golang
golang 比较浮点数的大小方式
May 02 Golang
Golang 编译成DLL文件的操作
May 06 Golang
关于golang高并发的实现与注意事项说明
May 08 Golang
golang中的struct操作
Nov 11 Golang
Go语言安装并操作redis的go-redis库
Apr 14 Golang
Go web入门Go pongo2模板引擎
May 20 Golang
Golang实现可重入锁的示例代码
May 25 Golang
go goth封装第三方认证库示例详解
Aug 14 Golang
goland 清除所有的默认设置操作
go 原生http web 服务跨域restful api的写法介绍
Apr 27 #Golang
解决Golang中ResponseWriter的一个坑
Apr 27 #Golang
golang在GRPC中设置client的超时时间
golang http使用踩过的坑与填坑指南
Apr 27 #Golang
Golang 实现超大文件读取的两种方法
Apr 27 #Golang
golang中的空slice案例
Apr 27 #Golang
You might like
用PHP调用数据库的存贮过程!
2006/10/09 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
apache php模块整合操作指南
2012/11/16 PHP
PHP可变函数的使用详解
2013/06/14 PHP
php格式化日期实例分析
2014/11/12 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
pandas.cut具体使用总结
2019/06/24 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
Python request中文乱码问题解决方案
2020/09/17 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
Java基础类库面试题
2013/09/04 面试题
《永远的白衣战士》教学反思
2014/04/25 职场文书
先进基层党组织材料
2014/12/25 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书