Go语言并发模式与文件搜索实战
1. 并发文件搜索
在进行文件搜索时,若文件为普通文件而非目录,可依据指定选项比较文件名或文件内容。
- 检查文件名 :检查文件名较为简单,代码如下:
if o == nil || !o.Contents {
if name == term {
select {
case <-ctx.Done():
default:
ch <- Result{File: file}
}
}
return
}
- 检查文件内容 :若要搜索文件内容,需先打开文件:
f, err := os.Open(file)
if err != nil {
select {
case <-ctx.Done():
default:
ch <- Result{File: file, Err: err}
}
return
}
defer f.Close()
接着逐行读取文件以搜索指定术语,若读取文件时上下文过期,则停止所有操作:
scanner, matches, line := bufio.NewScanner(f), []Match{
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



