Détection de la présence d'un fichier dans un sous directory

stratos_2014 Messages postés 4 Statut Membre -  
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je voudrais faire une petite routine qui examinerais de façon constante un sous directory nommé par exemple "input-file".
Si aucun fichier n'est présent la routine tourne sur elle même !
Si un fichier est présent je voudrais que l'on sorte de la routine afin de
1-traiter le fichier,
2-le fichier sera effacé du sous directory "input-file" et ensuite retour vers la routine de détection de fichier..
je ne suis pas un expert en php !
Qui pourrais m'aider ?
Merci d'avance et bien à vous,

6 réponses

  1. Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
     
    Hum, j'ai répondu un peu trop vite, en effet si tu ne connais pas le nom du fichier, il faut agir différemment, en utilisant ceci par exemple :
    $dirname = 'C:\Users\Martine\Desktop\file_input';
    $dir = opendir($dirname); 
    while($file = readdir($dir)) {
       if($file != '.' && $file != '..' && !is_dir($dirname.$file)){
          //Ton traitement où $file=nom du fichier (Donc tu peut fopen et autre))
       }
    }
    
    1
  2. Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
     
    Bonjour,
    Tu peut gérer ça avec file_exists (https://www.php.net/manual/fr/function.file-exists.php).
    Par contre, créer un routine pour ça n'est peut-être pas nécessaire, si tu utilise un formulaire d'upload pour envoyer le fichier que tu doit traiter, il faudrait mieux mettre le traitement sur ce code là (Après, je ne connais pas tes contrainte technique)
    0
  3. stratos_2014 Messages postés 4 Statut Membre
     
    Bonjour et merci Nhay,
    avec file-exists j'ai fait ceci:
    Mais je ne connais pas le nom du fichier qui arrive dans le sd "input_file"
    Si je remplace file.txt par le nom qui ce trouve dans le input-file cela fonctionne
    comment faut il faire ?

    <?php
    $filename = 'C:\Users\Martine\Desktop\file_input\file.txt';

    if (file_exists($filename)) {
    echo "Le fichier $filename existe.";
    } else {
    echo "Le fichier $filename n'existe pas.";
    }
    ?>
    0
    1. stratos_2014 Messages postés 4 Statut Membre
       
      je pensais ..bêtement à remplacer file.txt dans
      $filename = 'C:\Users\Martine\Desktop\file_input\file.txt';
      par
      $filename = 'C:\Users\Martine\Desktop\file_input\*.*';
      je rêvais ....
      0
    2. Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
       
      Malheureusement, je ne pense pas que les joker fonctionne pour cette fonction, mais celle poster ci-dessous devrait te convenir.
      0
  4. stratos_2014 Messages postés 4 Statut Membre
     
    je suis absent actuellement , je test cela, je vous remercie pour votre réactivité, je vous informe !!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. stratos_2014
     
    Bonjour,
    Avec un peu de retard mais cela fonctionne ton exemple,.
    Cependant j'ai un autre question, je voudrais détecter la présence de data sur un de mes port USB de mon PC, en Windows ?
    Merci d'avance !
    0
  7. Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
     
    Logiquement si tu change $dirname ça devrait fonctionner aussi (Si c'est à la racine, ça sera simple F:\ Ou un truc dans le genre.)
    0