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

Visual Studio Discussion :

Accès aux ressources


Sujet :

Visual Studio

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Points : 78
    Points
    78
    Par défaut Accès aux ressources
    Bonjour,
    Je suis en train de créer une application sous VisualStudio 2008 (C#).
    J'ai besoin d'avoir accès à 2 fichiers considérés comme des ressources du programme. Dans un premier temps je les ai donc déclarés en tant que ressource, et j'y ai accès par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Resources.MonFichier
    Seulement j'ai besoin d'en connaître le chemin (pour lecture/écriture), ce qui n'est pas possible de cette manière.

    De plus le chemin du dossier "resource" (et de n'importe quel autre dossier) par rapport à l'executable n'est pas forcement le même entre le moment du développement et au déploiement.
    Ex :
    - En cours de developpement, l'exe est créé dans bin\Debug, donc le chemin de mon fichier est : .\.\Resources\Monfichier
    - Après installation, l'exe et le dossier ressource sont dans le même dossier, donc le chemin est .\Resources\Monfichier

    Une commande magique telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Resources.Path
    m'aurait été bien utile ...

    Que me suggérez vous pour que je puisse récupérer le chemin d'un fichier (ou du dossier contenant les fichiers) indépendamment de leur chemin relatif par rapport à l'executable ?

    J'espère avoir été à peu près clair,
    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par flzox Voir le message
    Seulement j'ai besoin d'en connaître le chemin (pour lecture/écriture), ce qui n'est pas possible de cette manière.
    Tu n'as pas besoin que ce soit un fichier pour pouvoir le lire... et si tu dois écrire dedans, ça n'a rien à faire dans les ressources incorporées.

    Ensuite, je ne comprends pas trop ton histoire de chemin... il faut que tu déclares les fichiers de ressources comme sortie du projet, et ils seront copiés dans le repertoire bin\Debug\Resources, donc accessibles avec le chemin relatif Resources\fichier.ext (que ce soit pendant le dev ou au déploiement).

    Par contre, si ton programme doit modifier ces fichiers, ils ne devraient pas être dans le répertoire de l'application, sinon ton programme ne sera pas compatible avec Vista.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Points : 78
    Points
    78
    Par défaut
    Ok merci tomlev.
    J'ai quelques questions. J'ai créé un nouveau dossier pour les fichiers que je dois modifier en cours de session. Pour toi les resources sont statiques et ne doivent pas être modifiées par le programme ?
    Sinon j'ai déclaré ces fichiers comme sortie du projet, ce qui semble résoudre mon problème, seulement je n'ai pas pu tester le déploiement et d'après toi vista empêche la modification de fichiers dans le repertoire d'application. Si tel est le cas, je dois les mettres dans un truc comme documentAndSettings ?

    Merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par flzox Voir le message
    Ok merci tomlev.
    J'ai quelques questions. J'ai créé un nouveau dossier pour les fichiers que je dois modifier en cours de session. Pour toi les resources sont statiques et ne doivent pas être modifiées par le programme ?
    Ben si c'est des ressources incorporées, elles sont dans l'exe, donc non modifiables... après, tu peux toujours, à l'exécution, écrire ces ressources dans des fichiers pour pouvoir les modifier.

    Citation Envoyé par flzox Voir le message
    Sinon j'ai déclaré ces fichiers comme sortie du projet, ce qui semble résoudre mon problème, seulement je n'ai pas pu tester le déploiement et d'après toi vista empêche la modification de fichiers dans le repertoire d'application. Si tel est le cas, je dois les mettres dans un truc comme documentAndSettings ?
    C'est ça. Utilise Environment.GetFolderPath pour récupérer le chemin du répertoire de données d'application :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
    Sous XP, ça renvoie "C:\Documents and Settings\<user>\Application Data"
    Sous Vista, ça renvoie "C:\Users\<user>\AppData\Roaming"

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Points : 78
    Points
    78
    Par défaut
    Oui, bon après coup tout ça me parraît logique.

    Une dernière question :
    Je n'ai pas trouvé dans visual la possibilité de copier directement les fichiers dans Document And Settings.
    Dans les propriétés du fichier, on peut "Copier dans le répertoire de sortie", j'aurais bien voulu une option "Copier dans le répertoire : " et spécifier moi même le repertoire.

    Y'a t-il une solution, ou dois-je placer à la main ces fichiers dans Document And Settings et les ajouter ensuite à mon projet ?

    Merci

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    A mon avis le mieux c'est que ce soit ton programme qui les mette dans Documents and Settings...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Points : 78
    Points
    78
    Par défaut
    Ben lors du depploiement oui, je vais specifier que ces fichiers seront à installer dans Document And Setting.
    Mais en phase de développement j'ai toujours pas trouvé un moyen que visual me copie ces fichiers dans Document And Setting comme il le fait avec "Copier dans le répertoire de sortie" ...

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par flzox Voir le message
    Ben lors du depploiement oui, je vais specifier que ces fichiers seront à installer dans Document And Setting.
    Mais en phase de développement j'ai toujours pas trouvé un moyen que visual me copie ces fichiers dans Document And Setting comme il le fait avec "Copier dans le répertoire de sortie" ...
    tu peux toujours créer une action de post-compilation qui va copier les fichiers

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 224
    Points : 78
    Points
    78
    Par défaut
    Merci pour toutes ces infos !

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

Discussions similaires

  1. Contrôle d'accès aux ressource web avec TOMCAT
    Par yashiro dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 03/11/2008, 15h30
  2. Problème d'acces aux ressources
    Par Paskalin dans le forum Windows XP
    Réponses: 4
    Dernier message: 10/10/2008, 19h35
  3. Réponses: 1
    Dernier message: 13/08/2008, 15h57
  4. [WPF] Pb accès aux ressources
    Par hepsilonz dans le forum Framework .NET
    Réponses: 1
    Dernier message: 13/01/2007, 01h13
  5. Accès aux ressources
    Par salber dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 10/11/2006, 21h59

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