我试图检测给定路径是文件还是目录:
map(stat, readdir("./"))
#=
StatStruct(mode=040775, size=4096)
StatStruct(mode=040775, size=4096)
=#
这是正确的,我的cwd
中有两个目录。但是,当我尝试stat
目录时:
map(stat, readdir("./mydir"))
我得到了
#=
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
StatStruct(mode=000000, size=0)
=#
这对我毫无意义。我在mydir
中有文件和文件夹。发生了什么事?
答案 0 :(得分:5)
查看readdir("./mydir")
的输出是什么 - 它只是该文件夹中的文件名,没有mydir/
前置。您正在使用来自不同目录的文件名从当前工作目录调用stat
。
为了实现此目的,您需要移至mydir
或手动将mydir/
添加到您的文件名中:
cd("./mydir") do
map(stat, readdir())
end
或
map(f -> stat(joinpath("mydir", f)), readdir("./mydir"))