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 Discussion :

fonction parcourir en C (chercher/choisir un fichier sur le disque)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut fonction parcourir en C (chercher/choisir un fichier sur le disque)
    Salut à tous,

    Je cherche à faire une fonction qui permettrait d'aller chercher un fichier pour l'utiliser apres.
    Un fonction du genre "Parcourir" comme si on allait chercher une piece jointe.

    Cette fonction doit me permettre de récupèrer le chemin ainsi que le nom du fichier.
    Il doit surement exister une librairie pour ca.
    Ca fait déja plusiseurs jours que je cherche sur le net sans trouver quoi que se soit.

    Help me please!!!!

    Merci d'avance!!

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Et cela au sein d'un environnement graphique ? C'est-à-dire avec des fenêtres, des boutons et tout et tout. Quelle bibliothèque utilises-tu ? Quel compilateur.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut
    Je suis sous DevC++ et j'utilise que la console comme interface.
    Mais j'utilise aussi windows.h pour afficher des messages (Box)

    Mais je peux utiliser une interface graphique avec GTK+ par exemple, mais si c'est possible de le faire sans GTK+ ça m'arrangerais beaucoup

    penses-tu que c'est possible?

    ou encore j'ai cherché avec les librairies direct.h et dirent.h mais je ne trouve pas commenet faire.

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Est-ce que ceci te convient ?
    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
    #define _WIN32_WINNT 0x0500
    /* Il faut définir la version de Windows ciblée à 5.0 (Windows 2000) */
    /* car la fonction GetConsoleWindow n'existe qu'à partir de cette version. */
     
    #include <stdio.h>
    #include <windows.h>
    #include <commdlg.h>
     
    int main()
    {
        OPENFILENAME ofn;
        HWND hwnd = GetConsoleWindow();
        char lpszFile[MAX_PATH] = "";
        char lpszFileTitle[MAX_PATH] = "";
     
        freopen("null", "w", stderr); /* Cette ligne permet de ne pas avoir les éventuels messages d'erreurs dans la console. */
     
        printf("Choisissez un fichier...\n");
     
        ZeroMemory(&ofn, sizeof(ofn));
        ofn.lStructSize     = sizeof (OPENFILENAME);
        ofn.hwndOwner       = hwnd;
        ofn.lpstrFilter     = "Texte (*.txt)\0*.txt\0Tous (*.*)\0*.*\0";
        ofn.lpstrFile       = lpszFile;
        ofn.nMaxFile        = sizeof(lpszFile) / sizeof(lpszFile[0]);
        ofn.lpstrFileTitle  = lpszFileTitle;
        ofn.nMaxFileTitle   = sizeof(lpszFileTitle) / sizeof(lpszFileTitle[0]);
        ofn.Flags           = OFN_EXPLORER | OFN_HIDEREADONLY | OFN_CREATEPROMPT;
     
        if (GetOpenFileName(&ofn))
             printf("Vous avez choisi le fichier : %s.", lpszFile);
        else
            printf("Vous n'avez choisi aucun ficher.");
     
        return 0;
    }
    Il faut se lier avec libcomdlg32.a.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut
    Salut,
    j'ai essayé avec ton code et j'ai lié le projet avec libcomdlg32.a. (maintenant je sais faire )
    Apres quelques modifications et essais, cela marchait parfaitement!!!
    je te remercie de ta précieuse aide, ca fait tellement longtemps que je cherchais cette fonction!!

    C'est exactement ce que je cherchais!

    Un dernier truc : penses-tu que ca marchera sur tout les windows?

  6. #6
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par LeFoufou Voir le message
    penses-tu que ca marchera sur tout les windows?
    A cause de GetConsoleWindow ça ne marchera que sur Windows 2000 et les versions plus récentes, c'est-à-dire XP, 2003, Vista, Seven, 2008, toutes les éditions, tous les service pack, 32 ou 64 bits. Si tu n'utilises pas cette fonction, ça marchera sur toutes les versions 32 ou 64 bits de Windows.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/08/2009, 18h20
  2. parcourir des dossiers et choisir un fichier
    Par juju44 dans le forum Macro
    Réponses: 3
    Dernier message: 11/04/2009, 18h33
  3. Condition sur existence de fichier sur le disque dur
    Par manshoon dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2006, 09h58
  4. [Debutant] Applet listant les fichiers sur le disque
    Par romu92 dans le forum Applets
    Réponses: 2
    Dernier message: 05/05/2006, 09h26
  5. commande pour trouver un fichier sur le disque dur...
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 11/11/2005, 00h10

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