假设我有以下目录结构:
RootDir
---SubDir1
------SubSubDir
---------file1
---------file2
---SubDir2
---SubDir3
---file3
---file4
我想只对RootDir(SubDir1, Subdir2, Subdir3, file3, file 4)
的内容进行迭代,并检查它是否是目录或文件,而不是像filepath.Walk
那样进入子目录。
有没有办法在Go
库中执行此操作?
编辑:
files, err := os.Open("c:\\Documents")
file, err := files.Readdir(0)
if err != nil {
fmt.Printf("Error: %s\n", err)
}
for f := range file {
fmt.Println(f.IsDir())
}
所以在这里我试图通过FileInfo迭代,这是一个切片,如果它是一个目录,检查每个文件,但我总是得到这个错误:
f.IsDir undefined (type int has no field or method IsDir)
答案 0 :(得分:2)
您可以通过使用os.Open
打开目录来阅读目录,并且返回的*os.File
具有Readdir()
方法,该方法为直接文件夹内容提供os.FileInfo
个FileInfo
s IsDir()
1}}有一个{{1}}方法。