Schrift
[thread]378[/thread]

Alle Dateien aus Verzeichnis auslesen: Hätte gern einen Codeteil anders

Leser: 1


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Tom
 2004-12-12 18:19
#3691 #3691
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Um Dateien aus einem Verzeichniss auszulesen benutze ich folgenden Code

Code: (dl )
1
2
3
     @directories = ("C:\\Projekte\\Eventmanager\\mysql\\bilder\\smilies");
@dateien = ();
find(sub {push(@dateien,$_) unless $_ eq '.' or $_ eq '..' or $_ eq 'Thumbs.db'},@directories);


Der funktioniert auch wunderbar, nur stört mich das C:\\... ich habe den absoluten Pfad in einer Variable, aber ohne die doppelten Backslashs.

Gibt es eine Möglichkeit den Pfad anders anzugeben? Also ohne die doppelten Backslashs?

Danke

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
esskar
 2004-12-12 18:27
#3692 #3692
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
("C:/Projekte/Eventmanager/mysql/bilder/smilies");
pq
 2004-12-12 18:27
#3693 #3693
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich versteh dein problem nicht ganz, aber wieso benutzt
du nicht / anstatt \?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Tom
 2004-12-12 18:57
#3694 #3694
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Da bin ich gar nicht draufgekommen.

Danke

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Tom
 2005-09-23 18:46
#3695 #3695
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Kann ich den oberen Code auch nehmen um damit alle verzeichnisse auszulesen?

Oder muss der dann anders lauten.

Tom\n\n

<!--EDIT|Tom|1127489683-->
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
nepos
 2005-09-23 18:51
#3696 #3696
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Perl setzt das mit '/' schon korrekt um. Das '\\' kommt daher, weil der Backslash normal das naechste Zeichen escaped. Um nen Backslash selbst zu kriegen musst du ihn selbst escapen, drum 2x '\' ;)
Tom
 2005-09-23 19:35
#3697 #3697
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
@nepos

Diese Frage hat sich schon erledigt, ich brauche jetzt einen Code mit dem ich alle Verzeichnisse auslesen kann.

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Strat
 2005-09-23 20:02
#3698 #3698
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
was meinst du mit "alle verzeichnisse"? meinst du alle verzeichnisse, die rekursiv unter einem startverzeichnis haengen?
dafuer funktioniert dein code schon fast:
Code: (dl )
1
2
3
4
5
6
7
8
use File::Find;
find (
sub {
push (@dateien, $File::Find::name)
if -f $_ and $_ ne 'Thumbs.db'; # nur dateien ausser 'Thumbs.db'
},
@directories
);

$File::Find::name enthaelt den Namen der Datei mit vollem Pfad. So kommst du nachher auch noch an die Dateien in @directories dran, waehrend bei deiner Loesung ($_ enthaelt nur den puren Dateinamen, weil File::Find ein chdir macht) nur die Dateinamen ohne Pfad herauskommen.

Ist es das, was du brauchst?\n\n

<!--EDIT|Strat|1127491404-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Tom
 2005-09-24 21:17
#3699 #3699
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich habe z.B. folgende Struktur

-Event
--2004
---01
---05
---12
--2005
---12
--2006
---01

Jetzt möchte wenn ich mich im Ordner Event befinde nur 2004,2005 und 2006 erhalten.

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
pKai
 2005-09-24 22:16
#3700 #3700
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Ich nehme mal an, dass bedeutet du willst die erste Unterebene (definiert durch /^\d{4}$/ oder ähnlich), aber nicht deren Unterverzeichnisse?

Dann studiere nochmal perldoc File::Find. Du kannst die preprocess-Option verwenden um die Unterverzeichnisse die du nicht mehr durchsuchen willst an dieser Stelle auszufiltern.
I sense a soul in search of answers.
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2004-12-12 18:19.