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 :

Fichiers ou dossier...


Sujet :

C

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Fichiers ou dossier...
    Bonjour @ toutes et @ tous !!

    Voilà, je suis en train de faire une fonction pour renomer les fichier mais en meme temps aussi les numéroter, tout ceci en guise d'exercice en faisant un ptit programme koi, pour le fun !!

    Mais je me demande, comment peut-on savoir si le nom du fichier sur le quel on ai est bien un fichier et non un repertoire ??
    Ca me serais bien utile
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 380
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    sous quel OS et compilateur ?

    Si c'est sous Unix, tu utiliseras soit fstat, soit stat selon ce que tu testes un fichier ouvert ou fermé.

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Sous Win pour le moment mais plus tard je passe sous Linux (d'ici qq mois) et c'est pour des dossiers fermés.
    Je suis sur DevC++ 4 !
    J'aimerais du code portable
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    stat() et fstat() sont dans la norme POSIX il me semble...
    donc ca devrait être portable !

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Je les trouve où les prototypes de ces 2 fonctions ou bien un exemple d'utilisation ??

    Si c'est dans la norme POSIX c'est juste ce qu'il me faut !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 380
    Billets dans le blog
    1
    Par défaut
    Une solution : consulter les pages man Unix en ligne : http://linux.ctyme.com/userdoc/HTML/en/kdevelop/reference/C/FUNCTIONS/stat.html

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Oki je regarde ca car là je suis en train d'étudier les prototypes dans sys/stat.h lol !! Encore merci
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Bon, apres 3 heures d'études de la fonction stat, j'ai quand même reussi à l'utiliser ce qui est deja une bonne chose !!

    Déclarations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <unistd.h>
     
    struct stat pStat;
    char filename;
    Initialisation de la structure:
    Si la fonction renvoie -1 alors l'initialisation à échouée ou 0 dans le cas contraire.

    Vu que dans mon cas, je cherchais à savoir si le fichier sur le quel je pointe est un fichier ou un dossier, j'ai commencé une condition if comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(pStat.st_mode != _S_IFDIR) //Si le fichier n'est pas un dossier.
    Le problème est que la constante n'as pas la même valeur que celle que me retourne un printf pour tester, voici les 2 resultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf("\nst_mode : %d", pStat.st_mode);
    printf("\n_S_IFDIR: %d\n\n", _S_IFDIR);
    Resultat:
    st_mode : 16895
    _S_IFDIR: 16384
    Quelqu'un pourrais me dire pourquoi ou voir même comment résoudre mon problème ? Je rappel que j'aimerai bien avoir un code portable donc norme ANSI, POSIX, etc...
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  9. #9
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Ce n'est pas etonnant que st_mode et _S_IFDIR n'aient pas la meme valeur, d'autre bits de st_mode peuvent etre lever.

    En fait il faut verifier la presence du bit correspondant a _S_IFDIR pour verifier si st_mode est un repertoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(pStat.st_mode & _S_IFDIR)
    Tu peux aussi utiliser la macro S_ISDIR()

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Yeeeesssss ca marche nikel maintenant !!
    Fallais le savoir quand même !!

    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

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

Discussions similaires

  1. gestion des fichiers et dossiers avec FTP
    Par ahmeds dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 12/10/2006, 13h09
  2. Effaces fichier et dossier qui date de plus de 15Jr
    Par darksnake dans le forum VBScript
    Réponses: 8
    Dernier message: 12/09/2006, 17h18
  3. fichier en dossier
    Par seal3 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 29/08/2006, 18h49
  4. Droits d'acces aux fichiers dans dossier en partage
    Par catoucat dans le forum Windows XP
    Réponses: 3
    Dernier message: 03/07/2006, 02h47
  5. Fichiers et dossiers
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 13/02/2006, 18h46

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