我有一个包含以下内容的工作目录
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)
readdir
包含相对于输入目录的路径,isdir
然后将这些路径解释为相对于当前工作目录的路径(请参阅pwd
)。
从 Julia 1.4 开始,您可以join=true
作为关键字参数传递给readdir
,以便返回的路径与输入路径连接:
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