在Go语言中,你可以使用os
和io/fs
包来实现类似于C语言中的readdir
函数的功能。下面是一个简单的示例,展示了如何在Go中读取目录内容:
package main
import (
"fmt"
"io/fs"
"log"
"os"
)
func main() {
dir, err := os.Open(".")
if err != nil {
log.Fatal(err)
}
defer dir.Close()
files, err := dir.Readdir(-1) // -1 表示读取所有文件,包括子目录
if err != nil {
log.Fatal(err)
}
for _, file := range files {
fmt.Println(file.Name())
}
}
在这个示例中,我们首先使用os.Open
打开当前目录(.
),然后使用Readdir
方法读取目录内容。Readdir
方法接受一个整数参数,表示要读取的文件数量。传递-1
表示读取所有文件。
Readdir
方法返回一个[]os.FileInfo
切片,其中包含了目录中的所有文件和子目录。我们可以遍历这个切片并打印出每个文件和子目录的名称。
注意:在实际应用中,你可能需要根据实际需求对错误处理和目录路径进行相应的调整。