Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6312[/thread]

testen ob Verzeichnis leer

Tags: Ähnliche Threads

Leser: 2


<< |< 1 2 3 4 >| >> 34 Einträge, 4 Seiten
alexus-777
 2004-06-05 12:03
#83029 #83029
User since
2004-04-13
121 Artikel
BenutzerIn
[default_avatar]
Hallo,

wie teste ich am besten ob eine Verzeichnis leer ist?

Gruß Alexander
[E|B]
 2004-06-05 13:28
#83030 #83030
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hallo!

Quote
opendir(D, "files") or die $!;
@files = grep{$_ =~ m/\w/} readdir(D);
closedir(D);

print "Verzeichnis leer!" if(@files eq "");
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
renee
 2004-06-05 13:33
#83031 #83031
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[E|B
,05.06.2004, 11:28]@files = grep{$_ =~ m/\w/} readdir(D);

Ich würde eher
Code: (dl )
grep{$_ !~ /^\.\.?$/}
machen.
Ich habe häufiger Dateien, die als Namen nur Zahlen haben...

und
Code: (dl )
print "Verzeichnis leer!" if(scalar(@files) == 0);
\n\n

<!--EDIT|renee|1086428049-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
alexus-777
 2004-06-05 14:22
#83032 #83032
User since
2004-04-13
121 Artikel
BenutzerIn
[default_avatar]
@renee
steht eigentlich \w nicht für Buchstaben und Zahlen? Vielleicht irre ich mich.

Danke! :)
[E|B]
 2004-06-05 14:32
#83033 #83033
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=alexus-777,05.06.2004, 12:22]@renee
steht eigentlich \w nicht für Buchstaben und Zahlen? Vielleicht irre ich mich.

Danke! :)[/quote]
Nein, \w enthält Buchstaben und Zahlen ([A-Za-z0-9_]).
Somit ist mein Beispiel schon korrekt.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
renee
 2004-06-05 15:37
#83034 #83034
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
uups, natürlich...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2004-06-05 16:02
#83035 #83035
oder so ...
Code: (dl )
1
2
3
4
5
opendir DIR, $dir or die $!;
my $files = grep /\.\w+$/, readdir DIR;
closedir DIR;

$files == 0 && print "Verzeichnis leer!";
DS
 2004-06-05 16:54
#83036 #83036
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Was spricht in dem Fall gegen glob?
Code (perl): (dl )
print 'Verzeichnis ist ', glob($dir.'/*') ? 'nicht ' : '', 'leer!';
jan
 2004-06-05 17:34
#83037 #83037
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
oder scalar readdir DIR > 2?
coax
 2004-06-05 17:40
#83038 #83038
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Kann man sich vielleicht darauf verlassen, dass Verzeichnisse mit zwei (2) Links leer sind?
Dann sollte es ja so funktionieren:
Code: (dl )
1
2
3
my $dir = 'leeres_verzeichnis';
die $dir . " ist kein Verzeichnis oder existiert nicht\n" unless -d $dir;
printf("Verzeichnis %s ist %s\n", $dir, (stat($dir))[3] == 2 ? 'leer' : 'nicht leer');


Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
<< |< 1 2 3 4 >| >> 34 Einträge, 4 Seiten



View all threads created 2004-06-05 12:03.