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)
}
goLang文件遍历的更多相关文章
- Golang文件操作整理
		基本操作 文件创建 创建文件的时候,一定要注意权限问题,一般默认的文件权限是 0666 关于权限的相关内容,具体可以参考鸟叔p141 这里还是再回顾下,文件属性 r w x r w x r w x,第 ... 
- Golang文件IO 一
		Golang文件IO 一 文件IO编程最基本.最常用的就属读写文件操作了.ioutil包实现了一些IO实用功能,其中就包括非常简捷.好用的文件读取功能. ioutil包有7个函数1个变量: var D ... 
- golang range遍历是新创建对象还是创建对象的引用
		golang range遍历是新创建对象还是创建对象的引用,通俗的讲就是range对range出来的对象的修改会不会同步到被遍历的那个数组.先看如下代码: package main import ( ... 
- Python os.walk文件遍历用法【转】
		python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os ... 
- golang文件传输服务
		续上篇,本篇介绍一个完整的golang文件传输服务器. 完整的代码可以看服务器,客户端 网络使用的框架如上篇介绍,这里就不再复述. 首先定义3个命令码: const ( request_file = ... 
- Python文件遍历二种方法
		分享下有关Python文件遍历的两种方法,使用的OS模块的os.walk和os.listdir实现. 关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os ... 
- VBA学习笔记(4)--文件夹和文件遍历一层
		说明(2017.3.22): 1. '遍历指定文件夹里的文件 '遍历指定文件夹,返回第一层文件(不含文件夹) Public Sub test1() Dim k% Dim filename$ Dim p ... 
- WEB安全第二篇--用文件搞定服务器:任意文件上传、文件包含与任意目录文件遍历
		零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ... 
- Python 中当前位置以及目录文件遍历操作
		Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ... 
随机推荐
- POJ 2001:Shortest Prefixes
			Shortest Prefixes Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16782 Accepted: 728 ... 
- web前端职业规划
			关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了, 坚持去认真走,就好.在这里,我只是简要说一下自己对于这块儿内容的理解.有一个观点想要分享 ... 
- Entity Framework 第五篇 状态跟踪
			本人建议尽量使用EntityState来表名Entry的状态,而不要使用Configuration.AutoDetectChangesEnabled自动状态跟踪,为什么我这么建议呢?他们到底有什么异同 ... 
- readDouble
			readDouble是从一个文件中读取double类型的数据 
- Shell脚本编程初体验
			原文:http://linoxide.com/linux-shell-script/guide-start-learning-shell-scripting-scratch/ 作者: Petras L ... 
- Android-表格布局 计算器 修改版
			<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=" ... 
- JAVA题目
			1.在项目中创建Number类,判断字符串"mingrikejijiavabu"中字符"i"出现了几次,并将结果输出. 方法一: public class Nu ... 
- Cheatsheet: 2015 04.01 ~ 04.30
			Other CentOS 7.1 Released: Installation Guide with Screenshots A Git Style Guide Recommender System ... 
- MATLAB模拟布丰投针实验
			MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ... 
- Plotting means and error bars (ggplot2)
			library(ggplot2) ############################################# # summarySE ######################### ... 
