opendir MYDIR, "$dir";
my @FILES = readdir MYDIR;
closedir MYDIR;
Run Code Online (Sandbox Code Playgroud)
似乎99.9%的时间数组中前两个条目总是"."和"..".如果不是这样,脚本中的后来逻辑就会出现问题.我遇到了以后出现目录条目的情况.这是否表明文件系统已损坏或其他?opendir返回的是否有已知的顺序?
Ran*_*rtz 21
它始终是操作系统的顺序,以未分类的原始方式呈现.
虽然.和...通常是前两个条目,这是因为它们是创建的前两个条目.如果由于某种原因,其中一个被删除(通过不自然的序列,因为它通常被阻止),下一个fsck(或等效的)将修复目录以再次拥有它们.这会将其中一个名称放在列表中的稍后位置.
因此,不要只是"跳过前两个条目".相反,明确匹配它们以拒绝它们.
顺序是操作系统,并且没有明确定义.
它们很容易过滤掉.
opendir MYDIR, "$dir";
my @FILES = grep !/^\.\.?$/, readdir MYDIR ;
closedir MYDIR;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |