in reply to Re^4: fast count files
in thread fast count files

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".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?

Replies are listed 'Best First'.
Re^6: fast count files
by gautamparimoo (Beadle) on Jan 06, 2012 at 12:30 UTC

    thanks guys I tried with win32::Ole , File::Find and word count(linux one see above thread)method .Win32::Ole and wc give almost the same time .. So is there a way to count even faster that that??