pehajo: . und .. aus readdir entfernen (script ist anbei)

Beitrag lesen

Hallo,

als perlnewbie ist es mir schon mal gelungen nachfolgendes script
zu schreiben. (ermittelt belegten webspace und Anzahl der Dateien)
Nur die Anzahl der Dateien stimmt nicht, da . und .. auch
mitgezaehlt werden.
Hat jemand einen Ansatz wie ich die rausfiltern kann?
muesste ein if-Abfrage im Bereich von
use File::Find;
sein? richtig?

Vielen Dank fuer Tipps!

Gruesse

pehajo

--

#!/usr/local/bin/perl

print "Content-Type: text/html\n\n";

$summe_mb=0;

#--Pfad zum Startverzeichnis angeben
$pfad = "/usr/local/etc/httpd/htdocs";

opendir (FILES, "/usr/local/etc/httpd/htdocs");
  @files = readdir(FILES);
  @files = (sort(@files));

. und .. entfernen

shift(@files);
  shift(@files);
closedir (FILES);

print qq|
<html><head><title></title></head><body>
<table border=1>
<tr>
<td>Ordner</td><td>Anzahl</td><td>kB</td><td>MB</td>
</tr>
|;

foreach $file (sort(@files))
{

$groesse_bytes=0;
$anzahl = 0;
$groesse_kilobytes=0;
$groesse_megabytes=0;

use File::Find;
&find ( sub { $groesse_bytes += -s }, "$pfad/$file");
&find ( sub { $anzahl += 1 }, "$pfad/$file");

$groesse_kilobytes =  int ($groesse_bytes / 1024);
$groesse_megabytes = ($groesse_bytes / 1048576);
$groesse_megabytes = sprintf("%.2f",$groesse_megabytes);
$summe_mb = $summe_mb + $groesse_megabytes;

print qq|
<tr>
<td>$file</td> <td>$anzahl</td><td>$groesse_kilobytes</td><td>$groesse_megabytes</td>
</tr>
|;
}
print qq|
</table><BR>
Summe MB: $summe_mb<BR>
</body></html>
|;
exit;