共三步
- 定义一个函数A实现:把传入的值写到指定文件中
- 定义一个函数B实现:遍历传入的目录下文件和目录,是文件则把文件名作为参数调用A函数。如果是目录则把目录作为参数调用函数B(递归调用)。
- 主函数中调用函数B
package main
import (
"bufio"
"fmt"
"io/ioutil"
"os"
)
func WriterToFile(filename string){
file, err := os.OpenFile(".\\file.csv", os.O_CREATE | os.O_WRONLY | os.O_APPEND, 0666)
if err != nil {
fmt.Printf("open file error=%v\n", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
writer.WriteString(filename)
writer.Flush()
}
func ExtractFileName(dirname string) {
fileInfos, _ := ioutil.ReadDir(dirname)
for _,fi:=range fileInfos{
filedir := dirname+"\\"+fi.Name()
file := fi.Name()
if fi.IsDir(){
ExtractFileName(filedir)
}else
{
fmt.Println(file)
WriterToFile(file + "\n")
}
}
}
func main() {
dirname := ".\\"
fmt.Printf("搜索目录为:%s\n",dirname)
ExtractFileName(dirname)
}