package main
import (
"fmt"
"io/ioutil"
"strings"
)
// 传入扩展名列表,返回指定扩展名的文件名列表
func GetFileNames(expNameList []string) []string {
var fileNameList []string // 文件名列表
files, err := ioutil.ReadDir("./") // 读取目录下所有文件
if err != nil {
fmt.Println("目录错误!")
}
for _, file := range files { // 循环遍历文件名
if !file.IsDir() { // 不是目录,是文件
fileName := file.Name() // 获取文件名
fileNames := strings.Split(fileName, ".") // 分割文件名与扩展名
expName := fileNames[len(fileNames)-1] // 获取文件扩展名
for _, exp := range expNameList { // 循环遍历扩展名列表
if strings.EqualFold(exp, expName) { // 文件扩展名在扩展名列表中
// 将文件名添加到文件名列表
fileNameList = append(fileNameList, fileName)
break // 已经符合,退出内层循环
}
}
}
}
return fileNameList // 返回文件名列表
}
func main() {
var expNameList []string // 扩展名列表
var expName string // 用于输入单个扩展名
for { // 循环输入多个扩展名
fmt.Print("\n请输入一个扩展名后回车(“11” 完成输入):")
fmt.Scanln(&expName) // 输入扩展名
if expName == "11" { // 输入11完成扩展名输入
break
}
expNameList = append(expNameList, expName) // 将扩展名添加到扩展名列表
fmt.Print("您输入的扩展名为:")
for _, exp := range expNameList { // 显示输入的扩展名
fmt.Print(exp, " ")
}
}
fileNameList := GetFileNames(expNameList)
fmt.Println("\n显示所有文件名:")
for _, fileName := range fileNameList { // 显示符合条件的文件名
fmt.Print(fileName, " ")
}
}