一尘不染

在Go中列出目录

go

我一直在尝试找出如何简单地在Go中的单个目录中列出文件和文件夹。

我已经找到了filepath.Walk,但是它会自动进入子目录,这是我不想要的。我所有其他搜索都没有发现更好的结果。

我确定该功能存在,但确实很难找到。让我知道是否有人知道我应该去哪里。谢谢。


阅读 311

收藏
2020-07-02

共1个答案

一尘不染

您可以尝试使用软件包中的ReadDir函数io/ioutil。根据文档:

ReadDir读取以目录名命名的目录,并返回已排序目录条目的列表。

结果切片包含os.FileInfo类型,这些类型提供此处列出的方法。这是一个列出当前目录中所有内容的名称的基本示例(包含文件夹但未特别标记-
您可以使用IsDir()方法检查项目是否为文件夹):

package main

import (
    "fmt"
    "io/ioutil"
     "log"
)

func main() {
    files, err := ioutil.ReadDir("./")
    if err != nil {
        log.Fatal(err)
    }

    for _, f := range files {
            fmt.Println(f.Name())
    }
}
2020-07-02