识别子文件夹中的文件夹

Identify Folders in Sub-Folder

我有一个包含以下内容的工作目录

readdir()

6-element Vector{String}:
 "Manifest.toml"
 "Project.toml"
 "Report"
 "main.jl"
 "src"
 "test.jl"

我可以在这里识别文件夹:

filter(isdir, readdir())

2-element Vector{String}:
 "Report"
 "src"

我可以显示子文件夹的内容 Report:

readdir("Report/")

3-element Vector{String}:
 "jl_ACKKIu"
 "jl_zfa8Ys"
 "test.pdf"

那么,为什么我无法识别子文件夹中的文件夹?

filter(isdir, readdir("Report/"))

String[]

readdir contains paths relative to the input directory and isdir then interprets these paths as relative to the current working directory (see pwd).

从 Julia 1.4 开始,您可以将 join=true 作为关键字参数传递给 readdir,以便返回的路径与输入路径连接:

shell> tree .
.
├── DirectoryB
│   ├── DirectoryC
│   └── FileB
└── FileA

2 directories, 2 files

julia> readdir("DirectoryB")
2-element Vector{String}:
 "DirectoryC"
 "FileB"

julia> readdir("DirectoryB"; join=true)
2-element Vector{String}:
 "DirectoryB/DirectoryC"
 "DirectoryB/FileB"

julia> filter(isdir, ans)
1-element Vector{String}:
 "DirectoryB/DirectoryC"