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 :

[DEBUTANT] Intégrer et ouvrir un fichier a son projet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 39
    Par défaut [DEBUTANT] Intégrer et ouvrir un fichier a son projet
    Bonjour tout le monde,

    J'ai un petit soucis que je n'arrive pas a resoudre ni a retrouver mon cas sur le net, je ne tape surement pas les bons mots cles ou alors mon problème est vraiment trop évident


    J'ai un modèle de fichier word (.docx) que je souhaite intégrer a mon projet pour l'ouvrir par la suite et y faire des modifications.

    Je fais donc "Ajouter/Nouvel Element", je passe la propriété du fichier a "Ressource incorporé"

    Mais ensuite je bloque, je ne parvient pas a y accéder.
    Mon fichier s'appel IR.docx et il se trouve a la racine de mon projet.

    Voici le code tiré du tuto du site
    Code c# : 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
     
    // connexion à Word
                Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application();
                msWord.Visible = true; // mettez cette variable à true si vous souhaitez visualiser les opérations.
                object missing = System.Reflection.Missing.Value;
     
                // Attribuer le nom
                object fileName = "IR.docx";
                Microsoft.Office.Interop.Word.Document nvDoc;
                // Tester s'il s'agit d'un nouveau document ou d'un document existant.
                if (System.IO.File.Exists((string)fileName))
                {
                    // ouvrir le document existant
                    nvDoc = msWord.Documents.Open(ref fileName, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing);
                }

    Avec le code tel quel, je ne rentre pas dans la condition, parcontre si je fais pointer mon fichier sur une adresse précise "C:/IR.docx" par exemple, là mon fichier s'ouvre.
    Donc a priori je fais une erreur au niveau du filename mais je ne vois pas comment la résoudre


    Merci d'avance pour votre aide !

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    C'est normal, tu ne lui spécifie pas de chemin par défaut, il regarde donc à l'emplacement IR.docx sur ton dd, un chemin incorrecte donc ...

    Rajoute dans le filename, le chemin vers ton fichier qui se trouve dans ton projet

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 39
    Par défaut
    Merci de ta réponse, mais comment je peux connaitre le chemin de mon fichier dans mon projet ?

    Quand je vais dans les propriétés de mon fichier le chemin d'acces complet est :
    "C:\Users\XXX\Documents\Visual Studio 2008\Projects\XXX\XXXX\IR.docx"

    Si je rentre ce chemin dans mon filename, une fois mis en exécutable et installé sur une autre machine celui ci sera obsolète non ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Dans ce cas passe par le fichier setting pour spécifier le répertoire où se situera ton fichier

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Pour récupérer le Path courant dans lequel s'exécute l'exe (l'assembly), il existe la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Directory.GetCurrentDirectory();
    A partir de là, si le fichier docx est dans le même répertoire que ton exécutable, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fileName = Path.Combine(Directory.GetCurrentDirectory(), "IR.docx");
    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 39
    Par défaut
    Merci pour vos réponses, j'arrive maintenant a ouvrir mon fichier après compilation avec ce bout de code

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    object fileName = Path.Combine(Directory.GetCurrentDirectory(), "IR.docx");
                Microsoft.Office.Interop.Word.Document nvDoc;
     
                // Tester s'il s'agit d'un nouveau document ou d'un document existant.
                if (System.IO.File.Exists((string)fileName))
                {
                    // ouvrir le document existant
                    nvDoc = msWord.Documents.Open(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
             }


    Mais toujours le même problème une fois que je crée l’exécutable d'installation le fichier ne s'ouvre plus.
    J'ai l'impression que mon fichier n'est pas embarqué avec mon .Exe


    Savez vous comment y remédier ? merci d'avance

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

Discussions similaires

  1. Ouvrir un fichier dans son application d'origine
    Par nic1319 dans le forum Delphi
    Réponses: 5
    Dernier message: 21/05/2007, 13h56
  2. Ouvrir un fichier avec son programme
    Par aliwassem dans le forum Delphi
    Réponses: 1
    Dernier message: 21/10/2006, 21h26
  3. [C# 2.0] Comment ouvrir un fichier via son application?
    Par arasium dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/10/2006, 12h33
  4. ouvrir un fichier avec son application
    Par aliwassem dans le forum Langage
    Réponses: 11
    Dernier message: 02/02/2006, 16h57
  5. [Débutant(e)][JDIC] Ouvrir un fichier d'aide
    Par alex'l dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/09/2005, 10h40

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