GO语言实现列出目录和遍历目录的方法

作者:shichen2014 时间:2024-05-10 10:58:20 

本文实例讲述了GO语言实现列出目录和遍历目录的方法。分享给大家供大家参考。具体如下:

GO语言获取目录列表用 ioutil.ReadDir(),遍历目录用 filepath.Walk(),使用方法课参考本文示例。

具体示例代码如下:

package main

import (
 "fmt"
 "io/ioutil"
 "os"
 "path/filepath"
 "strings"
)

//获取指定目录下的所有文件,不进入下一级目录搜索,可以匹配后缀过滤。
func ListDir(dirPth string, suffix string) (files []string, err error) {
 files = make([]string, 0, 10)

 dir, 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() { // 忽略目录
   continue
  }
  if strings.HasSuffix(strings.ToUpper(fi.Name()), suffix) { //匹配文件
   files = append(files, dirPth+PthSep+fi.Name())
  }
 }

 return files, nil
}

//获取指定目录及所有子目录下的所有文件,可以匹配后缀过滤。
func WalkDir(dirPth, suffix string) (files []string, err error) {
 files = make([]string, 0, 30)
 suffix = strings.ToUpper(suffix) //忽略后缀匹配的大小写

 err = filepath.Walk(dirPth, func(filename string, fi os.FileInfo, err error) error { //遍历目录
  //if err != nil { //忽略错误
  // return err
  //}

  if fi.IsDir() { // 忽略目录
   return nil
  }

  if strings.HasSuffix(strings.ToUpper(fi.Name()), suffix) {
   files = append(files, filename)
  }

  return nil
 })

 return files, err
}

func main() {
 files, err := ListDir("D:\\Go", ".txt")
 fmt.Println(files, err)

 files, err = WalkDir("E:\\Study", ".pdf")
 fmt.Println(files, err)
}

希望本文所述对大家的GO语言程序设计有所帮助。

标签:GO语言,方法
0
投稿

猜你喜欢

  • Python列表(List)知识点总结

    2023-11-04 00:01:35
  • t-sql清空表数据的两种方式示例(truncate and delete)

    2024-01-20 09:46:24
  • MYSQL中怎样设列的默认值为Now()的介绍

    2008-11-01 16:54:00
  • Python实现PS滤镜中马赛克效果示例

    2021-05-25 20:56:59
  • Python装饰器用法实例总结

    2023-11-18 07:37:36
  • python3使用python-redis-lock解决并发计算问题

    2021-05-09 16:04:18
  • 原生Js与jquery的多组处理, 仅展开一个区块的折叠效果

    2024-04-17 10:06:48
  • Python 获取指定开头指定结尾所夹中间内容(推荐)

    2021-12-13 10:32:05
  • PyQt5每天必学之拖放事件

    2021-02-28 19:26:15
  • Vue实现步骤条效果

    2024-04-28 10:54:23
  • Golang编译器介绍

    2024-05-02 16:26:01
  • SQLServer 全文检索(full-text)语法

    2011-12-01 10:38:22
  • 手把手教你搭建一个vue项目的完整步骤

    2023-07-02 17:05:48
  • javascript知识点详解

    2024-05-08 10:11:13
  • 在Python中使用__slots__方法的详细教程

    2022-10-30 09:46:10
  • Python中反射和描述器总结

    2022-06-18 09:38:22
  • Mysql 数据库访问类

    2024-01-15 00:31:41
  • 浅析Python是如何实现集合的

    2022-05-16 03:38:58
  • 可能被你忽略的 JavaScript 代码陷阱

    2009-12-26 18:16:00
  • MySQL如何实现两张表取差集

    2024-01-18 21:00:03
  • asp之家 网络编程 m.aspxhome.com