zoukankan      html  css  js  c++  java
  • goLang文件遍历

    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)
    }
    

      

  • 相关阅读:
    strpbrk函数
    memchr函数
    memset函数
    strrev函数
    strncmp函数
    strset函数
    strtok函数
    计算机经典书籍之程序设计语言
    spring自定义bean的作用域
    lucene文章
  • 原文地址:https://www.cnblogs.com/zhangym/p/5809552.html
Copyright © 2011-2022 走看看