But I have 2 use my @files = `attrib /s c:\\*`; my $n = scalar @files;
I did warn you against loading the entire list into perl. It really slows things down.
as without it says that wc is an unrecognised command
There are various cures for that possible:
But I remembered a faster method. This uses the Windows Script Host to do the donkey work via Win32::OLE and runs 3 times faster on my machine.
2:14 instead of 6:40 on my machine. It also counts the directries as it goes which may or may not be useful to you: #! perl -slw
use strict;
use Time::HiRes qw[ time ];
use Win32::OLE qw[in];
my $start = time;
my $fso = Win32::OLE->new( 'Scripting.FileSystemObject' );
my @folders = $fso->GetFolder( $ARGV[0] );
my $cFolders = 0;
my $cFiles = 0;
while( @folders ) {
local $^W;
my $folder = pop @folders;
$cFiles += $folder->Files->Count;
$cFolders += $folder->Subfolders->Count;
for my $subFolder ( in $folder->SubFolders ) {
$cFiles += $subFolder->Files->Count;
$cFolders += $subFolder->SubFolders->Count;
push @folders, $_ for in $subFolder->SubFolders ;
}
}
my $seconds = time - $start;
my $minutes = int( $seconds / 60 );
$seconds %= 60;
printf "Folders:$cFolders Files:$cFiles [%u:%.2f]\n",
$minutes, $seconds;
__END__
[12:05:12.81] c:\test>countFiles c:\
Folders:68860 Files:1234105 [2:14.00]
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|