标签:文件 string err 中中 fmt fPath file go path
package main
import (
"fmt"
"io"
"os"
"strings"
)
type fileFilter func(fpath string) bool
type callBack func(path string)
func ReadFile(path string) {
file, err := os.Open(path)
if err != nil {
return
}
content := make([]byte, 1024)
contentAll := make([]byte, 1024)
for {
n, err := file.Read(content)
if err == io.EOF {
break
}
contentAll = append(contentAll, content[:n]...)
fmt.Println(contentAll[:n])
}
fmt.Println(string(contentAll))
}
func Dir(path string, filter fileFilter, back callBack) {
file, err := os.Open(path)
//fmt.Println(file)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
dirName, err := file.Readdirnames(-1) //-1表示读取全部没有限制
for _, name := range dirName {
//fmt.Println(dirName)
fPath := path + "/" + name
if fileInfo, err := os.Stat(fPath); err == nil {
if fileInfo.IsDir() {
//fmt.Println(fPath)
Dir(fPath, filter, back)
}
if filter == nil || filter(fPath) {
//fmt.Printf("file:%#v", fPath)
if back != nil {
back(fPath)
}
}
}
}
}
func main() {
Dir("folder", func(path string) bool {
return strings.HasSuffix(path, ".go")
}, func(path string) {
ReadFile(path)
})
}
标签:文件,string,err,中中,fmt,fPath,file,go,path 来源: https://www.cnblogs.com/wangsk/p/15861291.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。