Thanks, although is does not change the differences between dir sizes from this script and Win Explorer folder properties. This e.g. shows that one of my folders has 88 mb size although in fact it is empty. Thank you all, I'll give up...
-L 2009/3/5 Dermot <paik...@googlemail.com> > 2009/3/5 Gunnar Hjalmarsson <nore...@gunnar.cc>: > > Lauri Nikkinen wrote: > >> > >> ... from this script I get > >> > >> The total size of the file in etc is 15712.35 Kb > >> The total size of the file in etc is 15.34 Mb > >> > >> and when I check this from Win XP Explorer (folder properties) window I > >> get > >> > >> Size: 372 KB (380 928 bytes) > >> > >> What is the reason for this difference? > > > > Probably a bug in the code. ;-) Which measures have you taken to try to > > find the bug? > > > > Narff. My fault really I should have tried to run the code. > > > my @directories = grep {! /^\./ if -d} readdir(DIR); should be > > my @directories = grep { -d "$path/$_" && ! /^\./ } readdir(DIR); > > I've ran this and the results work fine for me: > > #!/bin/perl > > use warnings; > use strict; > use File::Find; > > my $path = $ARGV[0]; > die "You must supply a full directory path" unless (-e $path && -d $path); > > opendir (DIR, $path) or die "can't opendir $path: $!"; > my @directories = grep { -d "$path/$_" && ! /^\./ } readdir(DIR); > > my $total_size_of_files_in_dir; > > foreach my $dir (@directories) { > find(\&wanted, "$path/$dir"); ### Not sure how that worked > as you called it $directory > print "The total size of the file in $dir is " . > sprintf("%.2f Kb", ($total_size_of_files_in_dir * 0.0009765625)) . > "\n"; > print "The total size of the file in $dir is " . > sprintf("%.2f Mb", ($total_size_of_files_in_dir * 9.5367431641e-7)) > . "\n" > > } > > sub wanted { > if (-f $_) { > $total_size_of_files_in_dir += -s; > } > } > > This will only give you the top level of directories: > > 07/02/2009 14:00 <DIR> . > 07/02/2009 14:00 <DIR> .. > 07/02/2009 14:00 <DIR> bin > 15/03/2006 22:14 <DIR> eg > 07/02/2009 14:00 <DIR> html > 15/03/2006 22:15 <DIR> lib > 27/04/2005 21:32 <DIR> site > > A better solution would show you all the sub-directories. Something to > think about. > Good luck, > Dp. > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > >