use DirHandle; use Cwd; use File::stat; $strarting_dir=cwd; &creaalbero($strarting_dir); &alkilo($dimensione); print $dimensione; sub creaalbero { chdir $_; $cwd=cwd; $percorso="$cwd"."\\"; $dh = new DirHandle; $dh->open("$_"); @lista = ($dh->read()); shift @lista; shift @lista; foreach $dir(<*>) { if (-d $dir) { chdir $dir; &creaalbero(); $albero{"$percorso"}=directory; chdir".."; } if (-f $dir) { $current=cwd; $albero{"$current"."\\"."$dir"}=file; $stat=stat ($dir); $dimensione+=($stat->size); } } } sub alkilo { $dimensione=$dimensione/1024; @grand= qw/Tb Gb Mb Kb /; if ($dimensione>=1024) { pop @grand ; &alkilo($dimensione)} unless($dimensione==0){$molt=pop @grand} $dimensione =~ /^\d*\.\d?\d?/; $dimensione="$&"." "."$molt"; }This code make %albero with the paths as keys and directory or file as values(is unnecessary to recurse the directory).
foreach $dir(<*>)
In reply to Re: How do I recursively process files through directories
by Discipulus
in thread How do I recursively process files through directories
by paco
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |