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;
In reply to Count folder/files in directory by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |