Bonjour,
J'essaie de faire un script en perl pour parcourir les répertoires et afficher dans le navigateur
Au chargement de la page je dois afficher le répertoire racine ensuite chaque répertoire afficher sera sous forme de lien pour pouvoir le parcourir.
Mon problème se situe au niveau du répertoire parent, je n'arrive pas à garder en mémoire le répertoire parent.
J'ai essayé de stocké dans un fichier mais ça me fait toujours "Erreur d'ouverture de fichier".
J'ai donc besoin de vos conseils sur mon script:
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 #! /usr/bin/env perl # # Explorateur de fichier use strict; use warnings; print "Content-Type: text/html\n\n"; my $courant; # si variable get existe alors le répertoire courant est le contenu de la varible d'environnement QUERY_STRING if(my $get = $ENV{"QUERY_STRING"}){ my @pairs = split /=/, $get; $courant .= '/'.$pairs[1]; }else{ # sinon le répertoire courant est la racine $courant = "/"; } # ouverture d'un fichier pour stocker la variable $courant open(FILE, ">>url_du_fichier") or die("Erreur d'ouverture de fichier"); print FILE $courant; close(FILE); # ouverture du même fichier pour récupérer ce qui a été écrit open(FILE, "<url_du_fichier") or die("Erreur d'ouverture de fichier"); while(<FILE>){ $courant = $_; # on récupère le chemin } close(FILE); print '<p>Repertoire Courant : '.$courant.'</p>' , "\n"; opendir(my $fd, $courant) or die("Impossible d'ouvrir le répertoire"); my @entrees = grep { !/^\.\.$/ } readdir($fd); # lecture du répertoire et filtre des .. et . @entrees = grep { !/^\.$/ } @entrees; @entrees = sort @entrees; # tri dans l'ordre # lecture et affichage des liens vers les répertoires foreach my $v (@entrees){ if(-d "$courant/$v"){ print '<a href="/cgi-bin/explorateur.pl?fic='.$v.'">', "d $v</a><br>\n"; }elsif(-l "$courant/$v"){ print '<a href="#">' , "l $v</a><br>\n"; }else{ print '<a href="#">' , "- $v</a><br>\n"; } } closedir($fd);
Partager