imglist.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:42 2010 from imglist.pl 2008/12/08 3.1 KB.

#!/perl -w
# NAME: imglist.pl
# AIM: Given a folder, search for ALL image files
# 08/12/2008 - revisited, and works fine as a SIMPLE LIST
# 19/07/2008 geoff mclane http://geoffair.net/mperl
use strict;
use warnings;
use File::Basename;
use File::stat; # to get the file date
require 'logfile.pl' or die "Unable to load logfile.pl ...\n";
# log file stuff
my ($LF);
my $pgmname = $0;
if ($pgmname =~ /\w{1}:\\.*/) {
    my @tmpsp = split(/\\/,$pgmname);
    $pgmname = $tmpsp[-1];
}
my $outfile = "temp.$pgmname.txt";
open_log($outfile);
my $in_folder = '';
my $def_folder = 'C:\HOMEPAGE\GA';
$in_folder = shift @ARGV || $def_folder;
my @graf_ext = qw( .jpg .jpeg .gif .png .bmp .ico .mpg .tif );
my @fpfolders = qw( _vti_cnf _vti_pvt _private _derived );
my @imagelist = ();
my $fndcnt = 0;
my $filcnt = 0;
my $dircnt = 0;
my $file = '';
my $start_time = time();
prt( "Processing folder $in_folder ...\n" );
get_image_list($in_folder);
$fndcnt = scalar @imagelist;
prt( "Found $fndcnt images ... in $dircnt directories, $filcnt files ... (".elapsed_seconds()." secs)\n" );
foreach $file (@imagelist) {
    prt( "$file\n" );
}
prt( "Done $fndcnt images ... (".elapsed_seconds()." secs)\n" );
close_log($outfile,1);
exit(0);
###########################################
sub elapsed_seconds {
    my $tm = time();
    return ($tm - $start_time);
}
#########################################################
# Passed an array of extensions,
# check if this is one of them?
#########################################################
sub is_my_ext {
   my ($fil, @exts) = @_;
   my ($nm,$dir,$ext) = fileparse( $fil, qr/\.[^.]*/ );
   foreach my $ex (@exts) {
      if (lc($ex) eq lc($ext)) {
         return 1;
      }
   }
   return 0;
}
############################################
# only looking for GRAPHIC extensions,
# could be extended to others maybe ...
############################################
sub is_graphic_ext {
   my ($fil) = shift;
   return( is_my_ext($fil, @graf_ext) );
}
sub is_fp_folder {
    my ($fdr) = shift;
    my $tst;
    foreach $tst (@fpfolders) {
        if ($tst eq $fdr) {
            return 1;
        }
    }
    return 0;
}
sub get_image_list {
    my ($inf) = shift;
    my ($itm, $ff);
    my @fldrs = ();
   if ( opendir( DIR, $inf ) ) {
      my @files = readdir(DIR);
      closedir DIR;
      foreach $itm (@files) {
         if (($itm eq '.') || ($itm eq '..')) {
            next;
         }
         $ff = $inf . "\\" . $itm;
         if (-d $ff) {
                push(@fldrs,$ff) if !is_fp_folder($itm);
                $dircnt++;
                if (($dircnt % 100) == 0) {
                    prt( "Found ".scalar @imagelist." images ... in $dircnt directories, $filcnt files ... (".elapsed_seconds()." secs)\n" );
                }
                ##last if ($dircnt > 2000);
            } else {
                push(@imagelist, $ff) if (is_graphic_ext($itm));
                $filcnt++;
            }
        }
        foreach $itm (@fldrs) {
            get_image_list($itm);
        }
    } else {
        prt( "ERROR: Failed to OPEN $inf ...\n" );
    }
}
# eof

index -|- top

checked by tidy  Valid HTML 4.01 Transitional