Golang 读取目录并读取文件内容 - 使用 fs.Sub 和 Read 函数
Golang 读取目录并读取文件内容 - 使用 fs.Sub 和 Read 函数
在 Golang 中,您可以使用 fs.Sub 函数来读取目录,并使用 Read 函数来读取文件。
示例代码
package main
import (
"fmt"
"io/fs"
"log"
"os"
"path/filepath"
)
func main() {
// 定义要读取的目录路径
dirPath := 'path/to/directory'
// 打开目录
dir, err := os.Open(dirPath)
if err != nil {
log.Fatal(err)
}
defer dir.Close()
// 使用 fs.Sub 获取目录的子目录和文件
sub, err := dir.ReadDir(0)
if err != nil {
log.Fatal(err)
}
// 遍历子目录和文件
for _, entry := range sub {
// 检查是否为目录
if entry.IsDir() {
fmt.Println('目录:', entry.Name())
} else {
// 读取文件
filePath := filepath.Join(dirPath, entry.Name())
fileData, err := os.ReadFile(filePath)
if err != nil {
log.Println(err)
continue
}
fmt.Println('文件:', entry.Name())
fmt.Println('内容:', string(fileData))
}
}
}
请将 dirPath 替换为您要读取的目录的实际路径。然后,运行代码将会遍历该目录中的子目录和文件,并打印它们的名称和内容。
注意事项
- 在 Golang 1.16 或更高版本中,您可以使用
io/fs包中的函数和接口来操作文件系统。 - 在旧版本的 Golang 中,您可以使用
ioutil包来执行相同的操作。
原文地址: https://www.cveoy.top/t/topic/pgaj 著作权归作者所有。请勿转载和采集!