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 :

Soucis de chemin


Sujet :

C#

  1. #1
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut Soucis de chemin
    Bonjour !

    Je suis sur l'editeur de carte de mon jeu. J'enregistre le chemin du tileset dans le fichier mais lor de l'ouverture j'ai un soucis.

    Voici ce que je récupère : res/tiles_01.png
    dans le repertoire de mon executable (mon editeur), j'ai bien un repertoire "res" et le bon fichier.

    Lorsque je charge le tileset pour editer, ça fonctionne mais lorsque j'importe, il prend le chemin relatif par rapport au fichier chargé et non par rapport au chemin de l'executable.

    J'aimerais bien qu'il le fasse par rapport à l'executable.

    Comment faire?

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            private void BoutonOuvrir_Click(object sender, EventArgs e)
            {
                OpenFileDialog openFile = new OpenFileDialog();
                if (openFile.ShowDialog() == DialogResult.OK)
                {
                    _map = Map.LoadFromFile(openFile.FileName);
                    _map.InitFromLoad();
                    SurfaceMap.Blit(_map.Draw());
                    SurfaceMap.Refresh();
                }
            }

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Et pourquoi ne pas simplement compléter manuellement le path que tu obtiens pour qu'il soit absolu ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Path.GetDirectoryName(Application.ExecutablePath) + @"\res\..."
    En fait, si tu persiste à utiliser les chemins relatifs tu aura un problème dès que le CurrentDirectory sera changé car c'est par rapport à celà que le système se base pour les chemins relatifs ... et ce dernier est changé par plein de paramètres comme l'ouverture d'un fichier ...

  3. #3
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Je peut pas car mon mode de gestion ne fonctionne pas comme ça.

    En faite, mon editeur contient des fichiers de ressources (png) qui sont dans un repertoire (rep).
    Mon jeu contient un repertoire (rep) aussi et il faut qu'il charge le fichier relativement par rapport à l'executable et non en absolu car si je charge le fichier depuis c:\ et qu'une fois que je le met sur une autre machine le repertoire est dans (c:\monjeu\rep\tile.png), ça risque de venir genant.

    De plus je veut rester souple avec mon developpement et pas commencer à faire des absolu à corriger partout après.

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Hum ... ceci dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Path.GetDirectoryName(Application.ExecutablePath)
    Si ton exe est C:\MonJeu\Bidule.exe ça renvoi C:\MonJeu et si c'est D:\AutreBidule\Truc.exe ça renvoi D:\AutreBidule ... donc quelque soit l'endroit où tu le met ça marchera ... Ce que je te propose c'est de ne pas supposer que CurrentDirectory pointe vers le bon répertoire en espérant que c'est le cas mais de définir toi même par rapport à quoi tu te base dans ton chemin relatif, qui peut être le dossier de ton application ou de n'importe quel autre fichier, donc en mettant de coté les suppositions ...

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/09/2012, 19h39
  2. Soucis File.Copy [Chemin Introuvable]
    Par johann77 dans le forum VB.NET
    Réponses: 1
    Dernier message: 22/01/2012, 17h58
  3. [PHP 5.0] Soucis de chemin complet ou chemin relatif sur PC vs Laptop
    Par bruce-willis dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2010, 07h12
  4. Soucis de chemin pour ouvrir Form et Requêtes
    Par vaucluseimmo dans le forum VBA Access
    Réponses: 8
    Dernier message: 26/04/2010, 22h58
  5. Soucis avec les chemins d'image ou dans les CSS
    Par Lucas Panny dans le forum ASP.NET
    Réponses: 7
    Dernier message: 05/04/2010, 10h55

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