Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3003 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Fichier dans un dossier ou sous-dossier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Fichier dans un dossier ou sous-dossier

n°695509
burgergold
5$? va chez l'diable!
Posté le 08-04-2004 à 14:37:42  profilanswer
 

Voila, j'ai un fichier dont le path absolue est /web/htdocs/test.html et il pourrait aussi bien se trouver dans /web/htdocs/test/test.html
 
J'aimerais vérifier s'il est retrouve sous /web/htdocs (peut terminer ou non par un /)
 
je me demandais si yavais pas déjà un truc, du genre un module File::??? qui pouvait faire ca
 
je squat cpan depuis un bon 30min sans rien trouver alors je songe le faire manuellement avec un regular expression en ajoutant au path un / s'il ne termine pas par celui ci
 
 
merci

mood
Publicité
Posté le 08-04-2004 à 14:37:42  profilanswer
 

n°695515
burgergold
5$? va chez l'diable!
Posté le 08-04-2004 à 14:41:20  profilanswer
 

hum jcrois que File::Find::Rule peut p-e le faire
 
je confirme dans quelques minutes

n°695558
pospos
Posté le 08-04-2004 à 15:08:13  profilanswer
 

je suis pas certain d'avoir saisi ton probleme, mais pour tester si un fichier existe ou est present à un endroit donné tu fais comme ca:
 
if (-e $file) {
  ok
}


Message édité par pospos le 08-04-2004 à 15:08:35
n°695580
burgergold
5$? va chez l'diable!
Posté le 08-04-2004 à 15:34:26  profilanswer
 

ouais, mais je voulais savoir si par exemple, /web/htdocs/test.html était sous /web/htdocs
 
meme chose pour /web/htdocs/test/test.html
 
ca fonctionne ainsi
 
if (File::Find::Rule->file->name("index.html" )->in("/web/htdocs" )) { ... }
 
mais là faut jle fasse marcher avec des paths absolue pour les fichiers

n°695583
pospos
Posté le 08-04-2004 à 15:36:39  profilanswer
 

pourkoi tu test pas avec une expression reguliere?

n°695591
Tentacle
Posté le 08-04-2004 à 15:50:32  profilanswer
 

à moins qu'il cherche a savoir si un fichier se trouve dans un dossier, sous-dossiers inclus, sans connaître le chemin d'accès (juste le nom du fichier) ?

n°695623
burgergold
5$? va chez l'diable!
Posté le 08-04-2004 à 16:23:08  profilanswer
 

pospos a écrit :

pourkoi tu test pas avec une expression reguliere?


 
parce que je peux avoir
 
mon path: /web/htdocs   ou   /web/htdocs/
mon fichier: /web/htdocs/index.html   ou  /web/htdocs/monsite/index.html
 
mais que je pourrais avoier un dossier /web/htdocstoto/monsite/index.html que je veux pas prendre en compte

n°695628
Tentacle
Posté le 08-04-2004 à 16:30:23  profilanswer
 

et /^\/web\/htdocs(\/.*)?$/ ne pourrait pas suffire alors ?


Message édité par Tentacle le 08-04-2004 à 16:32:21
n°695637
burgergold
5$? va chez l'diable!
Posté le 08-04-2004 à 16:37:05  profilanswer
 

et dans le cas que /web/htdocs est plutot égal à /web/htdocs/
 
ca fonctionne toujours?

n°695643
Tentacle
Posté le 08-04-2004 à 16:42:21  profilanswer
 

le .* peut aussi ne rien prendre normalement ... donc oui, enfin essaie toujours :)

mood
Publicité
Posté le 08-04-2004 à 16:42:21  profilanswer
 

n°695652
burgergold
5$? va chez l'diable!
Posté le 08-04-2004 à 16:46:10  profilanswer
 

Code :
  1. use strict;
  2. use File::Find;
  3. my $DocumentRoot = "/web/htdocs/";
  4. find(\&test, "/web" );
  5. sub test {
  6.   if ($File::Find::name =~ m/^$DocumentRoot(\/.*)?$/) {
  7.     print $File::Find::name . "\n";
  8.   }
  9. }


 
fonctionne quand $DocumentRoot = "/web/htdocs" mais pas avec le "/" à la fin
 
et faut pas que ca print les fichiers se trouver dans un /web/htdocs2 par exemple

n°695718
burgergold
5$? va chez l'diable!
Posté le 08-04-2004 à 17:16:04  profilanswer
 

ca sa semble fonctionner pour les 2 valeurs possibles de DocumentRoot
 

Code :
  1. use strict;
  2. use File::Find;
  3. my $DocumentRoot = "/web/htdocs";
  4. #my $DocumentRoot = "/web/htdocs/";
  5. find(\&test, "/web/" );
  6. sub test {
  7.   if ($File::Find::name =~ m/^$DocumentRoot\/?/ || $DocumentRoot =~ m/^$File::Find::name\/?$/) {
  8.     print $File::Find::name . "\n";
  9.   }
  10. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Fichier dans un dossier ou sous-dossier

 

Sujets relatifs
[Perl] Concaténer 2 arrays[C++]Aide épuration de fichier texte
[perl] un bon livre en perl ?Mettre à jour une table depuis un fichier formaté CVS dans SQL SERVER
Valider un fichier xmlUpload de fichier (probleme résolu :D)
[C] problemes de lecture dans un fichier des noms de fichiers à ouvrir[Perl] Timeout sur un STDIN
[php] include fichier xml/xsl[Perl] Fichier, dossier ou lien?
Plus de sujets relatifs à : [Perl] Fichier dans un dossier ou sous-dossier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR