golang--ioutil包、遍历文件夹
作者:互联网
golang–ioutil包、遍历文件夹
package main
import (
"fmt"
"io/ioutil"
"log"
)
func main() {
/*
ioutil包:
ReadFile()、WriteFile()、ReadDir()...
*/
//1.读取文件中的所有数据
//无需自己打开文件和关闭文件
//fileName:="F:/golang/aaa.txt"
//data,err:=ioutil.ReadFile(fileName)
//fmt.Println(err)
//fmt.Println(string(data))
//2.写入数据
//无需自己打开文件和关闭文件
//fileName:="F:/golang/zbz.txt"
//s1:="明日凌霄看你曹!"
//err:=ioutil.WriteFile(fileName,[]byte(s1),os.ModePerm)
//fmt.Println(err)
//3.ReadAll()
//读取字符串
//s2:="明日凌霄看你曹!"
//r1:=strings.NewReader(s2)
//data,err:=ioutil.ReadAll(r1)
//fmt.Println(err)
//fmt.Println(string(data))
//4.ReadDir(),读取有一个目录下的子内容:子文件和子目录,但是只能读取一层
//dirName:="F:/golang"
//fileInfos,err:=ioutil.ReadDir(dirName)
//if err != nil {
// fmt.Println(err)
// return
//}
//fmt.Println(len(fileInfos))
//for i:=0;i<len(fileInfos);i++ {
// fmt.Printf("第%d个:名称为:%s,是否是目录:%t\n",i,fileInfos[i].Name(),fileInfos[i].IsDir())
//}
//5.临时目录和临时文件
//dir,err:=ioutil.TempDir("F:/golang/","text")
//if err != nil {
// fmt.Println(err)
// return
//}
//defer os.Remove(dir)
//fmt.Println(dir)
//
//file,err:=ioutil.TempFile(dir,"text")
//if err != nil {
// fmt.Println(err)
// return
//}
//defer os.Remove(file.Name())
//fmt.Println(file)
//6.遍历文件夹
dirname:="F://C++"
listFiles(dirname,0)
}
func listFiles(dirname string, level int) {
//level用来记录当前递归的层次,生成带有层次感的空格
s:="|一"
for i:=0;i<level;i++{
s="| "+s
}
fileInfos,err:=ioutil.ReadDir(dirname)
if err != nil {
log.Fatal(err)
}
for _,fi :=range fileInfos{
filename:=dirname+"/"+fi.Name()
fmt.Printf("%s%s\n",s,filename)
if fi.IsDir(){
//递归调用
listFiles(filename,level+1)
}
}
}
标签:ioutil,err,--,fmt,fileInfos,golang,Println 来源: https://blog.csdn.net/Jacson__/article/details/123596430