Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I was wondering if anyone could help me with this script Im trying to modify it to go through a directory and accurately output the total files and folders in the directory. Currently it is not giving accurate output because it is not searching throughout the entire directory. Thanks for any help that may be provided.
use strict; my $source = 'c:\directory'; my $folders = 0; my $files = 0; opendir (SOURCE, $source) or die "Cannot open the source folder for re +ading: $!\n"; my $file; while (defined($file = readdir(SOURCE))){ next if $file =~ /^\.{1,2}$/; my $full_name = "$source/$file"; if (-d $full_name){ #my $full_name = "$source/$file"; print qq($file); $folders++; print "\n"; process($full_name); }else{ print qq($full_name$file); $files++; print "\n"; } #next; } closedir (SOURCE); # Subroutine to process subdirectory and list content. sub process{ my ($path, $file, @files, $file_full_path); $path = shift; opendir (SUBDIR, $path) or die "Cannot open the subfolder for reading +: $!\n"; @files = sort grep {!/^\.{1,2}$/} readdir(SUBDIR); closedir (SUBDIR); for (@files){ $file_full_path = "$path/$_"; if (-d $_){ print qq($_); $folders++; print "\n"; process($_); }else { print qq($file_full_path); $files++; print "\n"; } } } print $folders; print "\n"; print $files;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Count folder/files in directory
by Corion (Patriarch) on May 22, 2008 at 14:40 UTC | |
by kyle (Abbot) on May 22, 2008 at 16:10 UTC | |
by Corion (Patriarch) on May 22, 2008 at 16:14 UTC | |
by runrig (Abbot) on May 22, 2008 at 16:32 UTC | |
|
Re: Count folder/files in directory
by starbolin (Hermit) on May 22, 2008 at 16:29 UTC | |
|
Re: Count folder/files in directory
by pc88mxer (Vicar) on May 22, 2008 at 17:00 UTC |