This commit is contained in:
parent
dba18c5458
commit
4ceabaa75e
|
@ -429,7 +429,7 @@ func removeFile(path string) bool {
|
|||
// 在 dir 指定的目录(包含子目录)中的 extension 指定后缀的文件中搜索包含 text 文本的文件,类似 grep/findstr 命令.
|
||||
func search(dir, extension, text string, snippets []*Snippet) []*Snippet {
|
||||
f, _ := os.Open(dir)
|
||||
fi, err := f.Readdir(-1)
|
||||
fileInfos, err := f.Readdir(-1)
|
||||
f.Close()
|
||||
|
||||
if nil != err {
|
||||
|
@ -438,11 +438,49 @@ func search(dir, extension, text string, snippets []*Snippet) []*Snippet {
|
|||
return snippets
|
||||
}
|
||||
|
||||
_ = fi
|
||||
for _, fileInfo := range fileInfos {
|
||||
name := fileInfo.Name()
|
||||
path := dir + name
|
||||
|
||||
if fileInfo.IsDir() { // 进入目录递归
|
||||
search(path, extension, text, snippets)
|
||||
} else if strings.HasSuffix(name, extension) { // 在文件中进行搜索
|
||||
ss := searchInFile(path, text)
|
||||
|
||||
snippets = append(snippets, ss...)
|
||||
}
|
||||
}
|
||||
|
||||
return snippets
|
||||
}
|
||||
|
||||
// 在 path 指定的文件内容中搜索 text 指定的文本.
|
||||
func searchInFile(path string, text string) []*Snippet {
|
||||
ret := []*Snippet{}
|
||||
|
||||
bytes, err := ioutil.ReadFile(path)
|
||||
if nil != err {
|
||||
glog.Errorf("Read file [%s] failed: [%s]", path, err.Error())
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
content := string(bytes)
|
||||
lines := strings.Split(content, "\n")
|
||||
|
||||
for idx, line := range lines {
|
||||
ch := strings.Index(line, text)
|
||||
|
||||
if -1 != ch {
|
||||
snippet := &Snippet{Path: path, Line: idx + 1, Ch: ch + 1, Contents: []string{line}}
|
||||
|
||||
ret = append(ret, snippet)
|
||||
}
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
// 根据文件名后缀判断是否是图片文件.
|
||||
func isImg(extension string) bool {
|
||||
ext := strings.ToLower(extension)
|
||||
|
|
Loading…
Reference in New Issue