代码示例:

package mainimport ("fmt""io/ioutil""os""strings"
)//获取指定目录下的所有文件和目录
func GetFilesAndDirs(dirPth string) (files []string, dirs []string, err error) {dir, err := ioutil.ReadDir(dirPth)if err != nil {return nil, nil, err}PthSep := string(os.PathSeparator)//suffix = strings.ToUpper(suffix) //忽略后缀匹配的大小写for _, fi := range dir {if fi.IsDir() { // 目录, 递归遍历dirs = append(dirs, dirPth+PthSep+fi.Name())GetFilesAndDirs(dirPth + PthSep + fi.Name())} else {files = append(files, dirPth+PthSep+fi.Name())// 过滤指定格式// ok := strings.HasSuffix(fi.Name(), ".go")// if ok {//     files = append(files, dirPth+PthSep+fi.Name())// }}}return files, dirs, nil
}//获取指定目录下的所有文件,包含子目录下的文件
func GetAllFiles(dirPth string) (files []string, err error) {var dirs []stringdir, err := ioutil.ReadDir(dirPth)if err != nil {return nil, err}PthSep := string(os.PathSeparator)//suffix = strings.ToUpper(suffix) //忽略后缀匹配的大小写for _, fi := range dir {if fi.IsDir() { // 目录, 递归遍历dirs = append(dirs, dirPth+PthSep+fi.Name())GetAllFiles(dirPth + PthSep + fi.Name())} else {// 过滤指定格式ok := strings.HasSuffix(fi.Name(), ".go")if ok {files = append(files, dirPth+PthSep+fi.Name())}}}// 读取子目录下文件for _, table := range dirs {temp, _ := GetAllFiles(table)for _, temp1 := range temp {files = append(files, temp1)}}return files, nil
}func main() {files, dirs, _ := GetFilesAndDirs("./simplemath")for _, dir := range dirs {fmt.Printf("获取的文件夹为[%s]\n", dir)}for _, table := range dirs {temp, _, _ := GetFilesAndDirs(table)for _, temp1 := range temp {files = append(files, temp1)}}for _, table1 := range files {fmt.Printf("获取的文件为[%s]\n", table1)}fmt.Printf("=======================================\n")xfiles, _ := GetAllFiles("./simplemath")for _, file := range xfiles {fmt.Printf("获取的文件为[%s]\n", file)}
}

输出结果:

获取的文件夹为[./simplemath\mid]
获取的文件夹为[./simplemath\sub]
获取的文件为[./simplemath\add.go]
获取的文件为[./simplemath\mid\mid.go]
获取的文件为[./simplemath\sub\sub.go]获取的文件为[./simplemath\add.go]
获取的文件为[./simplemath\mid\mid.go]
获取的文件为[./simplemath\sub\sub.go]

golang 遍历文件夹和文件相关推荐

  1. python 遍历文件夹和文件

    文件结构如下图 path = r"文件夹1" 遍历1层下的所有文件名和文件夹名 import os fileList = os.listdir(path) # 遍历1层 print ...

  2. java读取hdfs文件夹_HDFS 读取、写入、遍历文件夹获取文件全路径、append

    1.从HDFS中读取数据 Configuration conf = getConf(); Path path = new Path(pathstr); FileSystem fs = FileSyst ...

  3. VBA遍历文件夹下文件文件实用源码

    '批量遍历文件夹下某类文件,并统计编号 Sub OpenAndClose()Dim MyFile As StringDim s As StringDim count As IntegerMyFile ...

  4. [C#(WebForm)] - 利用递归遍历文件夹和文件存入TreeView

    主要函数:(具体实例在下面) //必须先引用命名空间:System.IO //使用relateTreeView函数时 path 路径使用本地路径,或经过Server.MapPath("服务器 ...

  5. python修改文件后缀_python实现遍历文件夹修改文件后缀

    本文实例为大家分享了python实现遍历文件夹修改文件后缀的具体代码,供大家参考,具体内容如下 用法 python Modifer.py ./ -fp java xml # coding:utf-8 ...

  6. php文件遍历类,PHP 遍历文件夹及文件类及处理类

    FindFile.class.php 用于遍历目录文件 /** 遍历文件夹及文件类 * Date: 2013-03-21 * Author: fdipzone * Ver: 1.0 */ class ...

  7. 利用递归遍历文件夹和文件存入TreeView

    主要函数:(具体实例在下面) //必须先引用命名空间:System.IO //使用relateTreeView函数时 path 路径使用本地路径,或经过Server.MapPath("服务器 ...

  8. php遍历文件夹下文件内容_php实现的遍历文件夹下所有文件,编辑删除

    遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称 /* 遍历文件夹; 功能:(a)可删除文件 (b)可 ...

  9. HDFS 读取、写入、遍历文件夹获取文件全路径、append

    版权声明:本文为博主原创文章,未经博主同意不得转载.安金龙 的博客. https://blog.csdn.net/smile0198/article/details/37573081 1.从HDFS中 ...

  10. python 遍历文件夹下文件修改并保存_利用python完成自动化的任务之遍历文件夹修改文件之后并保存备份...

    #利用python完成自动化的任务 #遍历文件夹里面的所有的内容--然后打开---利用正则表达式修改文本的内容(re.sub)---然后写入到新的文本内容中 import docx import re ...

最新文章

  1. 性能超越GPU、FPGA,华人学者提出软件算法架构加速AI实时化
  2. MySQL jfinal 生成数据_JFinal Web开发学习(四)数据库连接与自动生成model
  3. matplotlib 标签_matplotlib数据可视化基础设置
  4. C++判断一个数是否为armstrong number阿姆斯特朗数(附完整源码)
  5. mooc构建结构数组的笔记
  6. 读取Mc1000的 唯一 ID 机器号
  7. 在微型计算机中 如果电源突然中断,微型计算机在工作中电源突然中断,则其中的信息全部丢失,再次通电后也不能恢复的..._考试资料网...
  8. android 获取phone实例,android – 可以通过sdk来实例化一个telephony.Phone对象吗?
  9. Go内存管理之代码的逃逸分析
  10. bin code led_-/bin/sh: ./led: not found的解决办法
  11. 10.搭建vs2010+Qt4.8.5+QtCreator3.4.0开发环境
  12. Python抓取打印机硒鼓和组件剩余量的爬虫
  13. Apache Flink 简单安装
  14. 实习踩坑之路:日期计算错误,Java8API导致Unsupported unit: Seconds,计算当前时间到凌晨00:00的计算方法
  15. Dxdesigner SCH to Mentor PCB
  16. 解决ios微信小程序弹框点击穿透问题
  17. 华硕xhci灰色_[安装实录] 零基础完美黑苹果安装之华硕篇
  18. JAVA输入五中水果英文名称_水果英文名称大全
  19. QQ坦白说_6.09后最新
  20. CC00024.CloudOpenStack——|OpenStack组件.V02|——|OpenStack-Cinder块存储|配置block.V2|

热门文章

  1. RhinoMock入门(7)——Do,With和Record-playback
  2. 几种常见的数据库连接方法
  3. 配置Exchange 2007边缘同步
  4. 软件项目开发流程RUP上
  5. linux查看根目录使用率,Linux 查看空间使用情况的实例详解
  6. Kubernetes — CNI 规范
  7. SpringBoot 实战 (八) | 使用 Spring Data JPA 访问 Mysql 数据库
  8. 机器人纹身师出世,你敢让它帮你纹身吗?
  9. Selenium3.X 与 Javascript (Nodejs)
  10. 阿里古谦:阿里互联网架构的6大最佳实践