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 包来执行相同的操作。
Golang 读取目录并读取文件内容 - 使用 fs.Sub 和 Read 函数

原文地址: https://www.cveoy.top/t/topic/pgaj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录