Font
[thread]6312[/thread]

testen ob Verzeichnis leer (page 2)

Tags: Similar Threads

Readers: 2


<< |< 1 2 3 4 >| >> 34 entries, 4 pages
coax
 2004-06-05 17:55
#83039 #83039
User since
2003-08-11
457 articles
BenutzerIn
[default_avatar]
[quote=jan,05.06.2004, 15:34]oder scalar readdir DIR > 2?[/quote]
Vorsicht readdir gibt im skalaren Kontext den naechsten Eintrag zurueck, es wuerde also niemals zu dem Ergebnis kommen welches du erwartest.
,,Das perlt aber heute wieder...'' -- Dittsche
jan
 2004-06-05 17:56
#83040 #83040
User since
2003-08-04
2536 articles
ModeratorIn
[Homepage] [default_avatar]
mh, stimmt, das hab ich nicht bedacht, du hast recht.
also erst listenkontext herbeiführen und das dann scalar betrachten ...
coax
 2004-06-05 18:09
#83041 #83041
User since
2003-08-11
457 articles
BenutzerIn
[default_avatar]
jepp, zum Bsp so:
Code: (dl )
1
2
3
4
5
6
my $dir = './leeres_verzeichnis';

opendir(DH, $dir) or die $!;
my $count = () = readdir(DH);
print $count > 2 ? "nicht leer\n" : "leer\n";
closedir(DH);
,,Das perlt aber heute wieder...'' -- Dittsche
DS
 2004-06-05 18:17
#83042 #83042
User since
2003-08-04
247 articles
BenutzerIn
[default_avatar]
Hab' ich ned mitbekommen, daß glob so abwegig is? Warum antwortet keiner? :rock:
renee
 2004-06-05 19:48
#83043 #83043
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
[quote=Dieter,05.06.2004, 14:02]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!";
[/quote]
Damit forderst Du unbedingt eine File-Extension. Diese ist aber nicht unbedingt notwendig!
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 20:01
#83044 #83044
User since
2004-04-13
121 articles
BenutzerIn
[default_avatar]
hab mir solche Lösung ausgesucht:
Code: (dl )
1
2
3
4
5
6
7
8
9
if (-d $pfad) { 
                  opendir(D,$pfad) || die "opendir $pfad: $!";
                  my @dir_entries = readdir(D);
                  if (scalar(@dir_entries) == 2) {
                  print "leer";
                  }else{
                  print "nicht leer";
                  }
}


wird das funktionieren?

Gruß Alexander
alexus-777
 2004-06-05 20:05
#83045 #83045
User since
2004-04-13
121 articles
BenutzerIn
[default_avatar]
@DS

ich glaube da müssen noch . und .. berücksichtigt werden, oder?
coax
 2004-06-05 21:09
#83046 #83046
User since
2003-08-11
457 articles
BenutzerIn
[default_avatar]
[quote=alexus-777,05.06.2004, 18:05]@DS

ich glaube da müssen noch . und .. berücksichtigt werden, oder?[/quote]
nein das nicht.
Aber glob beruecksichtigt keine versteckten Dateien unter Linux - zumindest ist es bei mir so.
,,Das perlt aber heute wieder...'' -- Dittsche
coax
 2004-06-05 21:11
#83047 #83047
User since
2003-08-11
457 articles
BenutzerIn
[default_avatar]
[quote=alexus-777,05.06.2004, 18:01][...]
wird das funktionieren?[/quote]
jabb, denke mal schon :)
,,Das perlt aber heute wieder...'' -- Dittsche
Dubu
 2004-06-06 02:09
#83048 #83048
User since
2003-08-04
2145 articles
ModeratorIn + EditorIn

user image
[quote=coax,05.06.2004, 19:09][quote=alexus-777,05.06.2004, 18:05]@DS

ich glaube da müssen noch . und .. berücksichtigt werden, oder?[/quote]
nein das nicht.
Aber glob beruecksichtigt keine versteckten Dateien unter Linux - zumindest ist es bei mir so.[/quote]
Beides haengt zusammen, denn das Pattern '*' findet nunmal - auch in der Shell[1] - keine Dateien oder Verzeichnisse, die mit einem Punkt anfangen. Dafuer muss noch explizit das Pattern ".*" aufgefuehrt werden:
Code: (dl )
my @allfiles = glob ("* .*");

Damit hat man dann aber wieder die Eintraege fuer das aktuelle und das uebergeordnete Verzeichnis in der Liste.


[1] In der Bash gibt es die Shelloption 'dotglob', mit der man das Verhalten umstellen kann, nicht aber in der C-Shell, an der sich Perl orientiert.
<< |< 1 2 3 4 >| >> 34 entries, 4 pages



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