在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切片,其中包含了目录中的所有文件和子目录。我们可以遍历这个切片并打印出每个文件和子目录的名称。
注意:在实际应用中,你可能需要根据实际需求对错误处理和目录路径进行相应的调整。