我正在尝试检测给定路径是文件还是目录:
map(stat, readdir("./"))
#=
StatStruct(mode=040775, size=4096)
StatStruct(mode=040775, size=4096)
=#
Run Code Online (Sandbox Code Playgroud)
这是正确的,我有两个目录cwd.但是,当我尝试stat目录时:
map(stat, readdir("./mydir"))
Run Code Online (Sandbox Code Playgroud)
我明白了
#=
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)
=#
Run Code Online (Sandbox Code Playgroud)
这对我毫无意义.我有文件和文件夹mydir.怎么了?
看看输出readdir("./mydir")是什么- 它只是该文件夹中的文件名,没有mydir/前置.您使用stat来自不同目录的文件名从当前工作目录调用.
为了使其工作,您需要移动到mydir或手动添加mydir/到您的文件名:
cd("./mydir") do
map(stat, readdir())
end
Run Code Online (Sandbox Code Playgroud)
要么
map(f -> stat(joinpath("mydir", f)), readdir("./mydir"))
Run Code Online (Sandbox Code Playgroud)