Thread File::Find Verzeichnisstiefe (3 answers)
Opened by zipster at 2006-08-12 18:52

Dubu
 2006-08-13 04:23
#68840 #68840
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Das bydepth => 1 bewirkt nur, dass ein Verzeichnisname erst nach seinem Inhalt an die wanted-Funktion übergeben wird (also erst "D:\Temp\test1\test2", dann "D:\Temp\test1"). Trotzdem wird in größt möglicher Tiefe gesucht.

Das Problem lässt sich wahrscheinlich mit einer preprocess-Funktion für find() lösen, aber IMHO ist das viel zu kompliziert gedacht. Wenn du nur die Ordner in einem Verzeichnis willst, sind opendir()/readdir() oder das gute alte glob() viel effizienter:
Code: (dl )
my @subdirs = grep -d, glob "D:\Temp\*";

(Vorsicht wenn der angegebene Verzeichnispfad Leerzeichen enthält, dann muss man bsd_glob() aus File::Glob statt des Standard glob() nehmen.)

View full thread File::Find Verzeichnisstiefe