识别子文件夹中的文件夹

Geo*_*ery 3 julia

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

readdir()

6-element Vector{String}:
 "Manifest.toml"
 "Project.toml"
 "Report"
 "main.jl"
 "src"
 "test.jl"
Run Code Online (Sandbox Code Playgroud)

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

filter(isdir, readdir())

2-element Vector{String}:
 "Report"
 "src"
Run Code Online (Sandbox Code Playgroud)

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

readdir("Report/")

3-element Vector{String}:
 "jl_ACKKIu"
 "jl_zfa8Ys"
 "test.pdf"
Run Code Online (Sandbox Code Playgroud)

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

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

String[]
Run Code Online (Sandbox Code Playgroud)

fre*_*kre 5

readdir包含相对于输入目录的路径,isdir然后将这些路径解释为相对于当前工作目录的路径(请参阅pwd)。

\n

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

\n
shell> tree .\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 DirectoryB\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 DirectoryC\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 FileB\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 FileA\n\n2 directories, 2 files\n\njulia> readdir("DirectoryB")\n2-element Vector{String}:\n "DirectoryC"\n "FileB"\n\njulia> readdir("DirectoryB"; join=true)\n2-element Vector{String}:\n "DirectoryB/DirectoryC"\n "DirectoryB/FileB"\n\njulia> filter(isdir, ans)\n1-element Vector{String}:\n "DirectoryB/DirectoryC"\n
Run Code Online (Sandbox Code Playgroud)\n