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结构体嵌套的切片数组操作
Apr 28 Golang
golang 实现两个结构体复制字段
Apr 28 Golang
golang 接口嵌套实现复用的操作
Apr 29 Golang
go语言中GOPATH GOROOT的作用和设置方式
May 05 Golang
Golang标准库syscall详解(什么是系统调用)
May 25 Golang
Go语言实现Snowflake雪花算法
Jun 08 Golang
Go语言实现Base64、Base58编码与解码
Jul 26 Golang
简单聊聊Golang中defer预计算参数
Mar 25 Golang
golang操作rocketmq的示例代码
Apr 06 Golang
Go语言的协程上下文的几个方法和用法
Apr 11 Golang
golang的文件创建及读写操作
Apr 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/09/05 PHP
PHP+DBM的同学录程序(4)
2006/10/09 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
JavaScript效率调优经验
2009/06/04 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
vue.js响应式原理解析与实现
2020/06/22 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
android面试问题与答案
2016/12/27 面试题
JAVA程序员面试题
2012/10/03 面试题
初中数学教学反思
2014/01/16 职场文书
生物学学生自我评价
2014/01/17 职场文书
学习标兵获奖感言
2014/02/20 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis