本文将介绍如何列出匹配给定模式的文件路径。该列表不必来自同一文件夹。
过滤文件列表
Golang 版本
1.12.1
前言
本文将介绍如何列出匹配给定模式的文件路径。该列表不必来自同一文件夹。
实现
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
for i := 1; i <= 6; i++ {
_, err := os.Create(fmt.Sprintf("./test.file%d", i))
if err != nil {
fmt.Println(err)
}
}
m, err := filepath.Glob("./test.file[1-3]")
if err != nil {
panic(err)
}
for _, val := range m {
fmt.Println(val)
}
// Cleanup
for i := 1; i <= 6; i++ {
err := os.Remove(fmt.Sprintf("./test.file%d", i))
if err != nil {
fmt.Println(err)
}
}
}
$ go run main.go
test.file1
test.file2
test.file3
原理
要获取与给定模式对应的过滤文件列表,可以使用filepath
包中的Glob
函数。 有关模式语法,请参阅filepath.Match
函数的文档(https://golang.org/pkg/path/filepath/#Match)。
请注意,filepath.Glob
的返回结果是具有匹配路径的字符串切片。