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 :

problème d'acces à un répertoire sur un serveur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 38
    Par défaut problème d'acces à un répertoire sur un serveur
    Bonjour à tous,
    j'essaye d'écrire une fonction permettant d'ouvrir un répertoire situé en local ou sur un serveur (juste l'ouvrir, pas d'écriture, ni de modifications, etc...).
    Le code compile sans problème, j'arrive à lancer l'exécutable, etc...

    Cependant, lors de l'exécution pour le répertoire sur serveur, la console me marque qu'elle n'arrive pas à ouvrir un chemin de style "\\mon_serveur\Seinen\mon_projet".
    De fait, elle se rabat sur le directoire par défaut qui est "C:\Windows".

    J'ai remarqué qu'en mappant le serveur comme suit "X:\Seinen\mon_projet", alors l'exécution fonctionne sans problème.
    Cependant, je dois garder la première notation. Ne trouvant pas de solution, je me tourne vers vous, en espérant que quelqu'un saura éclairer ma lanterne.

    Voici mon programme :
    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
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <direct.h>
     
     
    bool ouvrir_repertoire()
    {	
           bool flag=0;
     
    /* Répertoire que l'on veut ouvrir */
    	char directory[] = "\\\\mon_serveur\\Seinen\\mon_projet";
     
     
    /*Si le répertoire ne s'ouvre pas, on indique la cause de l'échec.*/            
    	if (_chdir (directory))									   
    		printf( "Opening Failure : %s\n\n", strerror( errno ) ); 
     
    /* Sinon, on indique qu'on a réussi, et on lève le flag*/
    	else
           {                                        
    	printf("Directory is open\n");
    	system( "dir *.txt");  
           flag=1;
           }
     
    /* Envoie de la valeur du flag.*/
           return flag;	
    }
    En vous remerciant pour vous être donné la peine de lire mon message.
    Seinen.

  2. #2
    Scorpi0
    Invité(e)
    Par défaut
    Je ne sais pas si ça va t'aider, mais cette syntaxe marche bien chez moi avec un dossier sur le réseau.

    Es-tu sur d'avoir accès au dossier que tu recherches ?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 38
    Par défaut
    Merci d'avoir essayé.

    Niveau droits d'accès je ne devrais pas avoir de problème, vu que c'est moi qui ai créé le dossier et je n'ai pas changé de compte entre temps (de toute manière, j'en ai qu'un).

    Sinon, je vais réécrire le message que j'obtiens sur la console :

    '\\mon_server\Seinen\mon_projet'
    CMD.exe a été démarré avec le chemin d'accès comme répertoire en cours. Les chemins d'accès UNC ne sont pas pris en charge. Utilisation du répertoire Windows par défaut.
    Peut être que ceci parlera à quelqu'un.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En clair: Tu n'as pas le droit d'avoir un chemin réseau comme "répertoire courant" dans l'invite de commandes de Windows. Ça ne marche pas. Un point, c'est tout. Et ce, par soucis de compatibilité avec DOS.

    Par contre, tu peux passer le chemin en paramètre de dir...
    Code cmd : Sélectionner tout - Visualiser dans une fenêtre à part
    dir \\mon_server\Seinen\mon_projet\*.txt
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Médinoc
    Par contre, tu peux passer le chemin en paramètre de dir...
    Merci pour l'info.
    Cependant, je viens de trouver, sur le net, la fonction readdir(). Vaut-elle le coup (questions chemin d'accès, stabilité, sécurité,...) ?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    opendir()/readdir()/closedir() valent le coup, mais ont l'inconvénient de ne pas être disponible "de base" sous Microsoft Visual Studio : En effet, ces fonctions ne sont pas standard C, mais POSIX, et Visual ne les propose pas. En revanche MinGW (dev-c++, code::blocks) les propose en tant qu'extension.

    Ces fonctions sont déclarées dans le fichier d'en-tête <dirent.h>
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. Accès à un répertoire sur le serveur
    Par herodote92 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 28/08/2009, 13h56
  2. Création répertoire sur un serveur
    Par foreal dans le forum Windows
    Réponses: 2
    Dernier message: 27/06/2006, 11h40
  3. Réponses: 3
    Dernier message: 26/04/2006, 21h45
  4. problème d'accès aux données sur serveur par poste client
    Par rahan_dave dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2006, 09h13
  5. Création d'un répertoire sur un serveur
    Par Ric_ dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2005, 23h33

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