go语言遍历目录中的文件

From: go

FromLink: https://studygolang.com/articles/5592

go语言遍历目录中的文件

woquNOKIA · 2015-12-22 10:00:04 · 7992 次点击 · 预计阅读时间 2 分钟 · 不到1分钟之前 开始浏览

这是一个创建于 2015-12-22 10:00:04 的文章,其中的信息可能已经有所发展或是发生改变。

PHP+GO进阶一线大厂挑战50万年薪路线>>>

package main

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

var (
	files []string
)

//获取指定目录下的所有文件和目录
func ListDir(dirPth string) ( err error) {
	//fmt.Println(dirPth)
	dir, err := ioutil.ReadDir(dirPth)
	if err != nil {
		return  err
	}
	PthSep := string(os.PathSeparator)
	// suffix = strings.ToUpper(suffix) //忽略后缀匹配的大小写

	for _, fi := range dir {

		if fi.IsDir() { // 忽略目录
			//files1 = append(files1, dirPth+PthSep+fi.Name())
			ListDir(dirPth + PthSep + fi.Name())
			fmt.Println(dirPth + PthSep + fi.Name())
		}else{
			//fmt.Println("s")
			files = append(files, dirPth+PthSep+fi.Name())
		}
	}
	return  nil
}

func main() {
	_ = ListDir("/mnt/hgfs/share/mygo/src/yeesec/alchemist")

	for _, table1 := range files {
		fmt.Println(table1)
	}
}




package main
import (
	"fmt"
	"io/ioutil"
	"os"
	//    "path/filepath"
	//    "strings"
)
//获取指定目录下的所有文件和目录
func ListDir(dirPth string) (files []string,files1 []string, err error) {
	//fmt.Println(dirPth)
	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() { // 忽略目录
			files1 = append(files1, dirPth+PthSep+fi.Name())
			ListDir(dirPth + PthSep + fi.Name())
		}else{
			//fmt.Println("s")
			files = append(files, dirPth+PthSep+fi.Name())
		}
	}
	return files,files1, nil
}
func main() {
	files,files1, _ := ListDir("/mnt/hgfs/share/mygo/src/yeesec/alchemist")

	for _, table := range files1 {
		temp,_,_:=ListDir(table)
		for _,temp1 :=range temp{
			files = append(files, temp1)
		}

	}

	for _, table1 := range files {
		fmt.Println(table1)
	}
}

Link: http://www.asm32.net/web.aspx/article-details-7398.html

浏览次数 0 发布时间 2021-02-10 21:39:35 从属分类 Go语言

| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | 书签 | ASP.Net书签 | 京ICP备09029108号-1