我是perl的新手并打算检查文件夹是否为空。我发现了这个功能:
Private Sub CommandButton1_Click()
Prod = Array("ZS7_656", "PCO_656")
Dev = Array("NSA_103", "DCA_656")
For lngCounter1 = LBound(Dev) To UBound(Dev)
For lngCounter = LBound(Prod) To UBound(Prod)
On Error Resume Next
Set Zz2 = Workbooks.Open("C:\Users\*****\Desktop\New folder\" &
Dev(lngCounter1) & "_B_Roles.xls")
Zz2.Sheets(Dev(lngCounter1) & "_B_Roles").Range("A1").Value = "anirudh"
ThisWorkbook.Sheets(Prod(lngCounter)).Range("A2").Value =
Zz2.Sheets(Dev(lngCounter1) & "_B_Roles").Range("A1").Value
On Error GoTo 0
Next lngCounter
Next lngCounter1
End Sub
它工作正常,但我不明白它为什么要做is_folder_empty {
my $dirname = shift;
opendir(my $dh, $dirname) or die "Not a directory";
return scalar(grep { $_ ne "." && $_ ne ".." } readdir($dh)) == 0;
}
。这里grep { $_ ne "." && $_ ne ".." }
和.
的含义是什么?
答案 0 :(得分:3)
我假设你看了Detect empty directory with Perl。
即使是空目录也包含.
和..
目录。
.
表示当前目录。
..
表示父目录。
所以你的功能是排除这两个结果,因为它们总是在那里。
答案 1 :(得分:2)
目录总是有一个条目。 (此目录)和..(父目录)。 您提到的代码会读取目录的所有条目,如果只有这些条目则为空。
希望我能理解