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 :

Explorateur de dossiers


Sujet :

C

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut Explorateur de dossiers
    Salut,

    J'aurais besoin de programmer un système de navigation dans les dossiers d'un répertoire ( je suis sous Windows), par exemple qu'il affiche les dossiers du répertoire (mais pas les fichiers) et que dès que l'utilisateur clique sur l'un des dossiers, que j'assigne une fonction (par exemple qui serait de lire automatiquement un fichier spécifique qui se trouve dans le dossier)

    J'ai lu pas mal de trucs la dessus mais j'ai réussi a en mettre en place aucun (a part un mais j'ai pas réussi a l'adapter ensuite en gtk)
    Je voulais aussi suivre ce que disais ce cours C : http://gtk.developpez.com/cours/gtk2/?page=page_19#LXIX puis le modifier selon mes besoins, mais je reçois une erreur a cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(selection)->ok_button), "clicked", G_CALLBACK(recuperer_chemin), selection );
    Sans que j'arrive a la résoudre... vous savez comment faire ? des idées ?

    En bref juste pouvoir programmer un explorateur qui afficherais juste les dossiers d'un répertoire donné (pas les fichiers) avec possibilité d'assigner une fonction lors du clic de l'un des dossiers

    C'est assez pressé alors merci beaucoup d'avance

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    tu as une erreur?
    Par hasard, pourrais-tu nous dire laquelle?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ||=== Build: Release in explorer (compiler: GNU GCC Compiler) ===|
    C:\Users\daniel\Desktop\test\explorer\main.c||In function 'creer_file_selection':|
    C:\Users\daniel\Desktop\test\explorer\main.c|42|warning: implicit declaration of function 'gtk_file_selection_new' [-Wimplicit-function-declaration]|
    C:\Users\daniel\Desktop\test\explorer\main.c|42|warning: assignment makes pointer from integer without a cast [enabled by default]|
    C:\Users\daniel\Desktop\test\explorer\main.c|48|warning: implicit declaration of function 'GTK_FILE_SELECTION' [-Wimplicit-function-declaration]|
    C:\Users\daniel\Desktop\test\explorer\main.c|48|error: invalid type argument of '->' (have 'int')|
    C:\Users\daniel\Desktop\test\explorer\main.c|50|error: invalid type argument of '->' (have 'int')|
    C:\Users\daniel\Desktop\test\explorer\main.c||In function 'recuperer_chemin':|
    C:\Users\daniel\Desktop\test\explorer\main.c|57|warning: implicit declaration of function 'gtk_file_selection_get_filename' [-Wimplicit-function-declaration]|
    C:\Users\daniel\Desktop\test\explorer\main.c|57|warning: assignment makes pointer from integer without a cast [enabled by default]|
    ||=== Build failed: 2 error(s), 5 warning(s) (0 minute(s), 0 second(s)) ===|
    J'ai essayé de me renseigner sur ce problème mais sans résultat...

    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Je suppose que tu essayes de compiler un exemple en GTK2 et que tu as les bibliothèques GTK3 ?
    Ou alors tu n'as pas inclus les bon headers …

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    Merci !

    J'ai désinstallé gtk3 et j'ai installer gtk2, l'erreur n'apparait plus mais maintenant j'en ai une autre qui m'indique qu'il ne trouve pas gtk\gtk.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ||=== Build: Release in explorer (compiler: GNU GCC Compiler) ===|
    C:\Users\daniel\Desktop\test\explorer\main.c|1|fatal error: gtk/gtk.h: No such file or directory|
    ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
    Comment faire ?

    Merci ^^

  6. #6
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Là, à mon avis, il va falloir configurer ton IDE pour qu'il indique au compilateur où trouver les bons headers. Tu utilises quel IDE ?

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    Code blocks.

    Merci

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    J'ai essayé plusieurs fois de mettre en place GTK2 mais sans succès... y aurait plutôt une solution pour rendre compatible le code avec GTK3 ?

    Merci

  9. #9
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Le plus est certainement de prendre le temps d'apprendre GTK3 c'est clair.

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    C'est sur que c'est la meilleure solution mais la documentation n'existe qu'en anglais... et je trouve aucun cours en français sur GTK3

  11. #11
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Ca, c'est l'occasion d'apprendre l'anglais de documentation.
    Ca s'apprend assez vite, il n'y a qu'un vocabulaire très restreint, et tu en aura souvent besoin.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  12. #12
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Je plussoie Leternel évidemment.
    De plus tu as quelques outils qui peuvent t'aider comme Glade pour la création de l'UanI, anjuta un IDE qui intègre glade et qui semble assez agréable à utiliser (mais pas de version windows juste linux). Il existe une version win32 de Glade en revanche. Tu peux également utiliser Visual C++, il y a quelques tutos sur le net.

  13. #13
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    Je vois... une dernière question pour finir : donc si j'apprends bien GTK3, vous confirmez qu'il y a moyen de développer un explorateur de fichier totalement indépendant de celui du système ? (pas celui du système intégré dans la fenêtre GTK, mais un explorateur de fichier indépendant de A à Z, le but serait de pouvoir accéder aux fichiers d'une clé dont je développerais moi même le pilote, du coup j'aurais besoin de quelque chose de spécialement adapté. j'ouvrirais un autre sujet pour l'accès aux fichiers en question)

    Merci

  14. #14
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    GTK est une bibliothèque pour faire de l'UI. Ensuite tu peux afficher ce que tu veux avec … un explorateur de fichier entre autre : il suffit de lui fournir des données à afficher. Le tout est que ton pilote soit capable de fournir des données à afficher. C'est totalement indépendant.

  15. #15
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    Donc en théorie, si je comprends bien, le fait d'accéder aux fichiers se programme en C (donc rien a voir avec GTK), donc je devrais programmer en C un moyen d'afficher les dossiers (dirent.h par exemple ?) pour ensuite les afficher grâce a GTK ? c'est bien ça ?

  16. #16
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Utiliser dirent.h ou GIO (tant qu'à faire car tu utilises GTK) revient à demander à l'OS d'accéder à un système de fichier. S'il accède à un système de fichier c'est que l'OS peut l'afficher dans l'explorateur.
    Je ne sais pas comment se passe la communication entre un périphérique USB et windows mais tu dois avoir une API pour le faire. Il va falloir lire la doc et faire des tests. Peut-être s'inspirer des sources d'explorateur ext2 sous windows ce genre de chose …

  17. #17
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    si ces solutions reviennent a utiliser l'explorateur intégré, laquelle permet justement d'en faire un indépendant ?
    Je vais essayer de me documenter sur les drivers alors ^^

    Merci

  18. #18
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Non, tu n'utiliseras pas le navigateur intégré, mais le système de fichier sous-jacent.

    Un disque dur, c'est une immense suite de 0 et de 1.
    Le système de fichier, c'est une manière de lire ces 0 et ces 1 comme des fichiers.

    Un navigateur de fichier affiche les fichiers qu'il trouve dans le système de fichiers comme il le souhaite, mais il n'a d'autres possibilité que de demander au système d'exploitation l'accès au module système de fichier.

    En anglais, on parle de file system ou FS, qu'on trouve par exemple dans NTFS.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  19. #19
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    S'il n'a d'autre possibilité de faire appel au module du système de fichier, quelle solution pourrait permettre la lecture d'un répertoire uniquement par un logiciel spécifique ? n'y a t'il pas de solution de rendre lisible un répertoire uniquement via un logiciel spécialement développé ? (dans le cas ou le répertoire est une clé USB, peut être que ça se programme au niveau du microcontrôleur non ?)

    Merci

  20. #20
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Ton programme sera divisé en plusieurs parties modèle/vue/contrôleur (MVC) :
    • Le modèle
      C'est là que tu vas gérer l'accès au périphérique. Lui demander des données, lui en donner, l'initialiser, …
      Grosse partie du boulot je pense. Par exemple le modèle pourra fournir des données sous une forme qui ressemble à une arborescence de fichiers, même si par derrière il n'y en a pas vraiment.
    • La vue
      Ici tu ne t'occupes que d'afficher des données et de traiter les clics et autres évènements. Tu es libre de créer ce que tu veux, que ça ressemble à un explorateur de fichier ou à autre chose … c'est pareil. Tu codes ce que veux.
    • Le contrôleur
      Cette partie va tout synchroniser entre le modèle et la vue.


    Si dans la vue l'utilisateur clique droit sur une icone puis sélectionne l'item effacer (un évènement que la vue lui aura fourni) alors il va demander au modèle de faire une action. Suivant le résultat de l'action (succès, échec, autre) le contrôleur sera averti et la vue mise-à-jour.

    Donc tu vois, pas de gros problèmes. Tu développes ta couche communication avec ton périphérique, le contrôleur l'utilise. Tu crées un modèle (abstrait détaché de tout graphisme pour être clair) qui représente ces données dans ton application et finalement tu développes ta (ou tes) vue(s) pour tout présenter à l'utilisateur.

Discussions similaires

  1. Vista / Explorateur de dossier / Chemin par défaut
    Par stigmate101 dans le forum Windows Vista
    Réponses: 4
    Dernier message: 18/02/2009, 15h57
  2. Explorateur de dossier
    Par FCL31 dans le forum IHM
    Réponses: 4
    Dernier message: 23/10/2007, 19h56
  3. Explorateur de dossiers
    Par mattyeux dans le forum ASP
    Réponses: 1
    Dernier message: 09/02/2007, 17h20
  4. [ASP 3] Explorateur de dossier
    Par nahzhir dans le forum ASP
    Réponses: 9
    Dernier message: 06/02/2006, 12h10
  5. Menu type explorateur de dossiers/fichiers
    Par Ghusse dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 15h30

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