Vérifier la présence d'un fichier à partir d'un masque - Perl - Programmation
Marsh Posté le 25-10-2007 à 11:22:48
Code :
|
Marsh Posté le 25-10-2007 à 11:36:29
Si je comprend bien, ca va me lister les fichiers contenus dans le répertoire et qui répondent au masque.
Le soucis, c'est que je veux uniquement contrôler la présence (savoir s'il y en a au moins un) et ce sans avoir à l'ouvrir.
Le but étant de vérifier l'arrivée d'un certain nombre de fichiers répondant chacun à un masque (les masques sont dans un fichier pamamètre et ca ca fonctionne déjà bien) et de remonter une alerte en cas d'absence d'un ou plusieurs fichiers.
Marsh Posté le 25-10-2007 à 11:44:57
cybervince a écrit : Le soucis, c'est que je veux uniquement contrôler la présence (savoir s'il y en a au moins un) et ce sans avoir à l'ouvrir. |
RTFM
la tu parcours le repertoire mais en aucun cas tu ouvres/lis le fichier ...
Marsh Posté le 25-10-2007 à 14:03:36
anapajari a écrit : |
Oui je suis d'accord avec toi.
Ce que je voulais en fait, c'est éviter d'avoir à faire un parcours de tout le répertoire alors qu'il existe peut-être une fonction "native" qui permet de tester l'existance du fichier.
Je vais déjà essayer de cette façon pour voir si ca fonctionne.
Merci de ton aide
Marsh Posté le 25-10-2007 à 14:10:29
tu peux également faire un grep sur ta list, si la boucle te gène... ça dépend vraiment de ce que tu as besoin de faire
Et puis si tu veux pas le faire "à la main" t'as plein de modules qui te permettent de faire ça dont File::Find par exemple ( mais grosso modo ça revient au même).
Marsh Posté le 30-10-2007 à 02:20:36
Il faut utiliser la fonction glob, qui rend tous les fichiers matchant le pattern (à la sauce unix).
Cordialement,
Marsh Posté le 30-10-2007 à 11:46:38
Bon finalement j'avais adopté la méthode de balayer le répertoire :
Pas forcément ce qu'il y a de plus rapide niveau système, mais ca fonctionne bien.
Code :
|
Marsh Posté le 30-10-2007 à 11:53:33
un petit truc pour que ça aille plus vite, au lieu de:
Code :
|
je ferais plutot:
Code :
|
Il manque par ailleurs un closedir dans ton bordel.
cybervince a écrit : Pas forcément ce qu'il y a de plus rapide niveau système, mais ca fonctionne bien. |
plz explain ...
Marsh Posté le 30-10-2007 à 11:56:15
pourquoi vous voulez pas glober ? Y a bien MTOWTDI mais quand même
Marsh Posté le 30-10-2007 à 12:06:53
Moi j'ai rien contre mais comme je le disais plus haut ça dépend vraiment de ce qu'il veut faire.
Et de ce que je comprends de son truc, File::Find me parait quand même plus adapté que File::Glob
Marsh Posté le 25-10-2007 à 11:01:39
Bonjour,
J'ai fait un script dont le but est de vérifier la présence d'un certain nombre de fichiers à partir de masques.
Par exemple je veux savoir si il existe dans un répertoire donné un fichier qui commence par ABC.
Hélas, en faisant un if -f ABC*, ca ne fonctionne pas et il m'indique que le fichier n'est pas présent, malgré qu'il existe bien un fichier ABC123 par exemple.
J'en conclue que le if -f nécessite de connaître le nom précis du fichier.
Savez vous s'il existe une solution de contournement pour vérifier à partir d'un masque contenant un * ?
Merci par avance.
---------------
SaulGoodman.fr: Actus sur la série Better Call Saul