uiautomation遍历windows所有窗口_创建、递归遍历和删除临时目录

引言

  下面通过一个例子,说明如何实现创建、递归遍历和删除临时目录。用到标准库的包主要有:“os”、“path/filepath”、“io/ioutil”、“fmt”。

流程图

0a7f8b3ba00a5fd3a9f13c9718cbb976.png

创建临时目录

  1. ioutil.TempDir()用来创建临时目录,该方法接收两个参数。第一个参数表示需要在哪里创建新目录。若是空值,则会自动调用os.TempDir()方法获取系统的默认临时目录;第二个参数是匹配的模式,比如是“*_nginx.log”,生成目录时会用随机字符串将“*”替换掉。
  2. fmt.Errorf()会格式化输出错误信息,返回error。但error是接口类型,可用error.Error()方法将错误信息转换为字符串表示。
  3. filepath.Join()用来拼接路径。
  4. os.MkdirAll()会递归创建目录,权限位适用于新创建的所有目录。类似linux命令“mkdir -p /foo/bar”。
19411397c174bc0074c6a5c5d92145af.png

遍历和删除临时目录

  1. os.Chdir()用来更改当前的工作目录,当前工作目录一般默认为环境变量“GOPATH”的值,如果使用gomod包管理,则默认为环境变量“GOMOD”的值。在命令行窗口下,可用“go env”命令查看。
  2. 自定义的subDirToSkip变量的作用是用来指定要跳过的目录,该操作不会报错,如果遍历时的目录名与它相等,必须返回一个固定的值“filepath.SkipDir”,专门用来返回的值,不是错误。
  3. filepath.Walk()用来递归遍历目录和文件,接收两个参数。第一个是设置要遍历的根路径。第二个是回调函数WalkFunc,它的用法:

type WalkFunc func(path string, info os.FileInfo, err error) error

path:表示遍历的目录前缀,假设目录foo中有两个文件a.txt和b.txt,将foo设为前缀,在遍历时就会分别用foo/a.txt和foo/b.txt作为参数调用walk函数。

info:表示文件的详细信息,比如文件名、文件大小等等。它是接口类型。

type FileInfo interface {

Name() string ​ // 文件名

Size() int64 ​ ​ // 文件大小,单位是字节。

Mode() FileMode ​ // 文件模式位

ModTime() time.Time // 修改时间

IsDir() bool ​ ​ // 是否是目录

Sys() interface{} ​ ​// 基础数据源

}

error:表示错误信息,出现错误时会停止遍历。

523e62818bf0bef8e9838f5631a54ffd.png

运行

在windows下的运行结果:

0fb4eaa0d6b0b1671633ea18f7e71127.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值