IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Fonction FindFirst() sous Windows 10


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Fonction FindFirst() sous Windows 10
    Bonjour à tous,
    Après une installation sans trop de dégâts sous Windows 10, je suis confronté à un petit problème avec la fonction FindFirst (pour rechercher en l'occurrence des fichiers, avec un masque, par exemple "c:\\temp\\*.xml"). Cette dernière ne me trouve systématiquement rien.
    Est-ce que quelque chose a changé sous Win10 à ce sujet ? Est-ce que derrière FindFirst se cache une notion de callback qui nécessite l'abonnement à un windows message WM_ quelconque ?
    Serait-ce une question de mode de compatibilité ?
    Merci d'avance !
    Wenn de turbo rabbits satt sin, esch de moteur gonflé.

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    salut
    aucun problème avec cette fonction sous windows 10
    peut-être une erreur dans ton code..
    poste un extrait si tu veux obtenir de l'aide pour résoudre ton problème
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut,
    Voici le code qui est employé :

    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
     
    void TFileMgr::SearchFiles(AnsiString mask, TStringList * PList)
    {
       // .......
       TSearchRec sr;
       // .......
       if (FindFirst(mask, faAnyFile, sr) == 0) //Condition jamais remplie, on ne rentre jamais dans la boucle !
       { 
          Application->ProcessMessages();
          do
          {
             PList->Add(sr.Name);
          }
          while (FindNext(sr) == 0);
          FindClose(sr);
       }
    }
    J'ai fait plusieurs essais, y compris remplacer faAnyFile par sa valeur numérique directe.
    Pour la valeur de mask, j'ai fait plusieurs essais aussi. Du genre :
    - "c:\temp\*.xml"
    - "c:\temp\*.*"

    Merci pour ton aide
    Wenn de turbo rabbits satt sin, esch de moteur gonflé.

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut,
    c’est dans ton mask que se trouve ton problème
    en effet c:\temp\*.xml devrait s'appeler c:\\temp\\*.xml

    voici un exemple de la faq
    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
     
    void Search(std::list<std::string>& listFile, std::string directory, std::string filtre) 
    { 
      TSearchRect file; 
      int retour ; 
      if(directory[directory.length()-1] != '\\') 
        directory += "\\"; 
      directory += filtre; 
      retour = FindFirst(directory.c_str(),0,file); 
      while(retour == 0) 
      { 
        if((file.Attr & faDirectory) != 0) 
        { 
          Search(listFile,file.Name,filtre); 
        }else{ 
          listFile.push_back(file.Name.c_str()); 
        } 
        retour = FindNext(file); 
      } 
      FindClose(file); 
    }



    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut,
    Oui bien sûr c'est entendu, c'est effectivement ce qui est fait
    Pour info, ce code fonctionne depuis une douzaine d'années sur XP et 7, mais le premier essai sous Win 10 a été infructueux. Je suis perplexe...
    Histoire de contrôler si tout va bien (droit d'accès, etc), je pourrais essayer d'évaluer l'existence selon W10 de mon répertoire de base. En réalité c'était un lecteur réseau authentifié, pour information (genre "F:\\config\\*.xml"). Il faudrait que j'essaye aussi avec un répertoire local.
    Wenn de turbo rabbits satt sin, esch de moteur gonflé.

Discussions similaires

  1. Fonction isspace sous Windows et É
    Par troumad dans le forum C
    Réponses: 3
    Dernier message: 01/04/2011, 11h42
  2. Home server (+ fonction multimedia) sous Windows
    Par adiekmann dans le forum Windows
    Réponses: 0
    Dernier message: 04/04/2009, 14h02
  3. fonction kbhit sous windows
    Par blabla06 dans le forum Windows
    Réponses: 4
    Dernier message: 03/06/2008, 16h30
  4. Fonction crypt sous Windows? HELP
    Par carter15_2001 dans le forum C
    Réponses: 6
    Dernier message: 16/12/2005, 18h48
  5. Fonction sleep sous Windows
    Par Veve44 dans le forum C
    Réponses: 2
    Dernier message: 07/12/2005, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo