跟着從這裏開始:Perl Imgsize not working in loop? 我還有一個問題 - 當我讀取目錄中的文件時,如何不讓perl列出單點和雙點條目?如何忽略Perl的readdir中的單點和雙點條目?
如上鍊接的問題,我輸出到while循環(while ($file = readdir($dh))
)是這樣的:
.
..
file1.jpg
file2.jpg
file3.jpg
file4.jpg
file5.jpg
而這造成的問題,因爲我也得到了一個櫃檯的地方,這是我的計數文件。並且.
和..
不計爲文件,所以我的計數器在我的目錄中提供的文件數量比實際數量多。
我加了if($file == "." || $file == ".."){ continue;}
和if ($file ~ /^\./ or $file ~ /^\.\./) {continue;}
以及對while循環開始的不同變化......但由於編譯錯誤,我一直得到中止。
我們如何獲得單點和雙點條目?
正則表達式'/\ A \。\。?\ z /'會更好,因爲它與某些文件系統中有效的文件'「\ n」'不匹配。 – amon
@amon:謝謝,我沒有意識到這一點。你能說什麼文件系統處理? – Toto
在文件系統的Ext系列(主要用於Linux)中,文件名可能包含除'\ 0'和'/'之外的任何*字節。對於NTFS也是如此,儘管Windows會施加進一步的限制。另請參閱[文件系統的比較](https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits) – amon