Hallo und schönen Nachmittag
Ich habe eine Frage zu File::Find unter Windows
Unter Linux verhält sich File::Find so das alle Dateien gefunden werden auch versteckte Dateien.
Wenn ich jetzt File::Find unter Win benutzen möchte wird es vermutlich genauso sein.
Meine Frage ist jetzt wie kann ich versteckte Dateien unter Windows NICHT finden lassen. Unter Linux kann ich im Dateinamen nach dem . (Punkt) (von File Find wird ja der Dateiname in $_ zurückgeliefert) filtern lassen, um versteckte Dateien nicht anzeigen/finden zu lassen.
Ich habe im CPAN ein Modul gefunden Win32::File was den Status der Dateien zurückgibt (Read Write Hidden etc.) allerdings steht nicht wie das zurück gegeben wird. (vermute mal als variable).
Da es sich um ein größeres Projekt handelt, möchte ich gern ein paar Tipps dazu haben um nicht einfach wild los zu programmieren und dann auf die Nase zu fallen.
p.s. Merke renne nie dem Chef kurz vor Feierabend über den Weg.
User since
2003-08-04
14371
Artikel
ModeratorIn
Beispiel für Win32::File:
1
2
3
4
5
6
7
8
9
10
11
12
13
use strict;
use warnings;
use Win32::File qw(GetAttributes HIDDEN);
my $hidden = 'hidden.txt';
for my $file( $0, $hidden, 'C:\Dokumente und Einstellungen' ){
my $attribs;
GetAttributes( $file, $attribs );
print $file, " -> ", $attribs & HIDDEN;
}
Edit: Das Programm ist natürlich nicht versteckt, 'hidden.txt' ist eine versteckte Datei und das Verzeichnis ist ebenfalls *nicht* versteckt. Dann ergibt das:
test_hidden.pl -> 0
hidden.txt -> 2
C:\Dokumente und Einstellungen -> 0
Vielen Vielen Dank für die schnelle Hilfe
Jetzt kann ich mir Gedanken machen wie ich das angehe.
Werde morgen mal ActiveState auf einem Winrechner installieren und hoffentlich demnächst meinen "geliebten Chef" befriedigen.
Danke nochmals
p.s. Gute Website von dir