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'accès d'un fichier XML dans program Files (projet c#)


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut problème d'accès d'un fichier XML dans program Files (projet c#)
    bonjour tout le monde !

    voila, j'ai réussi à créer un install de mon projet c# avec DreamShield

    il y a bien tous les raccourcis que je souhaite, le programme se lance bien et tout .... mais ya un hic !
    mon appli peut lire les données d'un fichier XML, mais ne peut pas enregistrer dedans ! chaque fois j'ai une erreur 'acces refusé' !

    alors je me demande, est-ce une erreur causé par dreamshield ? ou est-ce une erreur de gestion de droit car je suis dans Program Files et que donc il est diffile d'y écrire des données ??

    dois-je apporter une solution du coté c# avec un chmod ? et si oui comment dois-je faire ? O_o

    j'espère que vous pourrez m'éclairer ^^

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Sous Windows Vista/Seven le dossier Program Files est un dossier protégé. Un logiciel ne peut pas y écrire dedans sans avoir les droits administrateurs.

    De plus Program Files n'est pas un dossier destiné à recevoir des fichiers de données/paramètres utilisateur etc.
    Pour ce genre de chose il faut utiliser le dossier dédié à chaque utilisateur (C:/User/Toto sous Vista/Seven): App Data, Mes Documents, etc.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    bonsoir, après pas mal de temps passé sur google, je n'ai pas trouvé de solution ni même d'indice. je pense toujours qu'il s'agit d'un problème de droit d'écriture dans les sous-dossiers de program Files, seulement je ne trouve pas le moyen pour me donner ces mêmes droits...

    quelqu'un a déjà eu le même problème ? ou alors si vous pouviez m'indiquer un site sur lequel il y aurait beaucoup de tuto sur c# et XML svp ...

    ça ne presse pas lol, encore heureux, c'est nonoooowel !! xD

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    ok oki, merci

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    sur le site de developpez.com j'ai trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write("Utilisateur: " + User.Identity.Name);
    en réponse j'ai :

    Erreur 1 Le nom 'User' n'existe pas dans le contexte actuel C:\Users\m@x\Desktop\mes programmes\ReveilMatin\application\ReveilMatin\progPrincipal.cs 52 47 ReveilMatin
    et pourtant c'est un tuto pour c# :p

    EDIT :

    ça c'est meiux : Environment.UserName ^^

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    bon voila, j'ai réussi à réécrire le chemin dans ma classe, mais c# me génère une erreur :

    Impossible de trouver une partie du chemin d'accès 'C:\Users\m@x\AppData\Roaming\ReveilMatin\reveil.xml'.
    Me suis-je trompé quelque par ? O_o
    le chemin semble pourtant correct !

    EDIT :

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public static string fichierXML = "C:\\Users\\" + Environment.UserName + "\\AppData\\Roaming\\ReveilMatin\\reveil.xml";
    FileStream fs = File.Create(@"" + unFichier);

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    c'est bon ça marche :

    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
    30
    31
    32
     
            public static string fichierXML = "C:\\Users\\" + Environment.UserName + "\\AppData\\Roaming\\ReveilMatin\\reveil.xml";
     
            // on vérifie l'existance d'un fichier
            public bool existeFichier(string unFichier)
            {
                if (!File.Exists(@"" + unFichier))
                {
                    string repertoire = Path.GetDirectoryName(unFichier);
     
                    if (!System.IO.Directory.Exists(repertoire))
                    {
                        System.IO.Directory.CreateDirectory(repertoire);
                    }
                    FileStream fs = File.Create(@"" + unFichier);
                    fs.Close();
                    return false;
                }
                else
                {
                    FileInfo f = new FileInfo(unFichier);
                    long taille = f.Length;
                    if (taille > 0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
    merci pour le coup de main !

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Presque...

    Le problème avec le chemin en dur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\\Users\\" + Environment.UserName +"<a href="file://\\AppData\\Roaming\\ReveilMatin" target="_blank">\\AppData\\Roaming\\ReveilMatin</a>
    c'est que ça ne fonctionnera pas sous d'autres OS (Win XP par exemple).

    Le Framework contient des classes qui te permettent d'obtenir le chemin de certains dossier spéciaux. Par exemple, pour AppData:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
    Plus d'infos:
    http://msdn.microsoft.com/en-us/library/14tx8hby.aspx
    http://msdn.microsoft.com/en-us/libr...ialfolder.aspx
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  9. #9
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    super !!
    maintenant mon appli est compatible avec les windows de l'ancien millénaire
    merci c'est cool de partager ce genre de code ^^

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

Discussions similaires

  1. [AC-2003] Problème d'importation d'un fichier Excel dans une application ACCES
    Par zahira87 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/03/2013, 14h08
  2. Problème d'encodage des fichiers xml dans SAX
    Par jad_jad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 26/05/2008, 19h51
  3. Réponses: 2
    Dernier message: 05/03/2007, 14h21
  4. [C#] Problème chargement fichier xml dans treeview
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2006, 14h10
  5. utilliser un autre fichier xml dans un xsl
    Par New Bee dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/04/2003, 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