package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"log"
"os"
)
//文件目录树形结构节点
type dirTreeNode struct {
name string
child []dirTreeNode
}
var iCount int = 0
//递归遍历文件目录
func getDirTree(pathName string) (dirTreeNode, error) {
rd, err := ioutil.ReadDir(pathName)
if err != nil {
log.Fatalf("Read dir '%s' failed: %v", pathName, err)
}
var tree, childNode dirTreeNode
tree.name = pathName
var name, fullName string
for _, fileDir := range rd {
name = fileDir.Name()
fullName = pathName + "/" + name
if fileDir.IsDir() {
childNode, err = getDirTree(fullName)
if err != nil {
log.Fatalf("Read dir '%s' failed: %v", fullName, err)
}
} else {
childNode.name = name
childNode.child = nil
//读取文件内容并打印
readLine(fullName, processLine)
iCount++
}
tree.child = append(tree.child, childN