Schrift
[thread]8737[/thread]

Alle Verzeichnisse Verzeichnisse in Datei ausgeben

Leser: 1


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
wiederlader
 2007-02-07 17:40
#74143 #74143
User since
2007-01-03
36 Artikel
BenutzerIn
[default_avatar]
Vielleicht kann mir jemand helfen. Mit dem tree Befehl bin ich nicht wirklich weitergekommen.
Wie kann ich ohne ein Modul zu benutzen mit Perl alle Verzeichnisse inkl. Unterverzeichnisse des LW C:\ anzeigen bzw. in eine Datei oder Array ausgeben lassen. In die Datei/Array sollte in folgende Form geschrieben werden (oder sogar sofort mit doppel Backslash oder / )

c:\
c:\Windows
c:\Windows\system
c:\Windows\system32
...
...

Danke, Gruß Markus
renee
 2007-02-07 17:48
#74144 #74144
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dazu kann man gut CPAN:File::Find verwenden...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# ungetestet

use File::Find;
my @dirs;
find(\&wanted,"C:\\");

my $file = '/path/to/file';
open my $fh, '>', $file or die $!;
print $_,"\n" for @dirs;
close $fh;

sub wanted{
push @dirs,$File::Find::name if -d $File::Find::name;
}
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/
Dubu
 2007-02-07 18:28
#74145 #74145
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Wieso ohne Modul? Ist das 'ne Hausaufgabe?
MisterL
 2007-02-07 18:45
#74146 #74146
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
So ganz ohne Modul und den tree Befehl könnte man sich noch den dir Befehl ansehen: "dir /?" Fehlen nur noch die geeigneten Parameter.
“Perl is the only language that looks the same before and after RSA encryption.”
wiederlader
 2007-02-08 08:18
#74147 #74147
User since
2007-01-03
36 Artikel
BenutzerIn
[default_avatar]
[quote=Dubu,07.02.2007, 17:28]Wieso ohne Modul? Ist das 'ne Hausaufgabe?[/quote]
Weil ich noch ganz am Anfang stehe und eigentlich noch keine Module installieren wollte. Aber da es sich dabei um eine standard Modul handelt und mir die Sache auch noch super gefällt werde ich den Code von Renee übernehmen.
wiederlader
 2007-02-08 08:21
#74148 #74148
User since
2007-01-03
36 Artikel
BenutzerIn
[default_avatar]
[quote=MisterL,07.02.2007, 17:45]So ganz ohne Modul und den tree Befehl könnte man sich noch den dir Befehl ansehen: "dir /?" Fehlen nur noch die geeigneten Parameter.[/quote]
Nachdem Renee das Modul File::Find aufgeführt habe, werde ich doch mit einem Modul arbeiten. Aber auf den "dir" Befehl bin ich überhaupt nicht gekommen.
wiederlader
 2007-02-08 08:36
#74149 #74149
User since
2007-01-03
36 Artikel
BenutzerIn
[default_avatar]
[quote=renee,07.02.2007, 16:48]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
use File::Find;
my @dirs;
find(\&wanted,"C:\\");

my $file = '/path/to/file';
open my $fh, '>', $file or die $!;
print $_,"\n" for @dirs;
close $fh;

sub wanted{
   push @dirs,$File::Find::name if -d $File::Find::name;
}
[/quote]
Hallo Renee,
was bewirken die folgenden Zeilen ? (das print ist mir klar, nur das mit dem Dateihandel verstehe ich noch nicht)
Code: (dl )
1
2
3
4
my $file = '/path/to/file';
open my $fh, '>', $file or die $!;
print $_,"\n" for @dirs;
close $fh;


Edit betterworld: Code-Tags heilgemacht (bitte mit [/code] schliessen)\n\n

<!--EDIT|betterworld|1171063953-->
renee
 2007-02-08 11:16
#74150 #74150
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe bei dem print was vergessen, muss
Code: (dl )
print $fh $_,"\n" for @dirs;
heißen...

open my $fh, '>', $file or die $!; öffnet eine Datei zum Schreiben (erkennbar an dem '>')
close $fh; schließt den Dateihandle
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/
wiederlader
 2007-02-08 11:57
#74151 #74151
User since
2007-01-03
36 Artikel
BenutzerIn
[default_avatar]
[quote=renee,08.02.2007, 10:16]Ich habe bei dem print was vergessen, muss
Code: (dl )
print $fh $_,"\n" for @dirs;
heißen...

open my $fh, '>', $file or die $!; öffnet eine Datei zum Schreiben (erkennbar an dem '>')
close $fh; schließt den Dateihandle[/quote]
Ich war etwas schwer von Begriff. Den Code habe ich jetzt verstanden.
Ich würde den Code wie folgt schreiben. Ist das grundsätzlich falsch oder auch o.k. ?
Code: (dl )
print $fh "$_\n" for @dirs;

Danke, Gruß Markus
renee
 2007-02-08 12:08
#74152 #74152
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ist auch ok!
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/
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2007-02-07 17:40.