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 :

Forcer la création d'un fichier xml dans le disque c: [Débutant]


Sujet :

C#

  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut Forcer la création d'un fichier xml dans le disque c:
    Bonjour,

    J'ai un petit soucis!!
    Mon application crèe un fichier XML que j'aimerai placé autre part que sur le bureau (car mon application se trouve sur le bureau) mais je n'arrive pas à l'envoyer ailleurs. Sachant que cette application est destiné à d'autres utilisateurs comment je peut faire pour forcé la création?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    XmlSerializer xs = new XmlSerializer(typeof(Connect));   // Création d'une instance de XmlSerializer : on passe en paramètre du constructeur le type d'objet à sérialiser
                using (StreamWriter wr = new StreamWriter("LoginMdp.xml"))    //Ouverture d'un StreamWriter sur le fichier de destination
                {
                    xs.Serialize(wr, co); //serialisation de l'objet
                    File.SetAttributes("LoginMdp.xml", FileAttributes.Hidden);  //fichier caché
                }
    J'ai essayé qui ne marche pas mais aussi la méthode Environment.SpecialFolder dont je ne comprend pas l'utilisation et je ne sais pas ou placé.

    Merci de votre aide!!

  2. #2
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Tu peux utiliser la classe System.IO.Path qui fournit des classes statiques pour la concaténation de chemins et autres.

    Sinon, je ne sais pas si l'erreur vient de là mais sous Windows les chemins sont de type C:\ et non C:/

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using (StreamWriter wr = new StreamWriter(@"c:\LoginMdp.xml"))
    Ne fonctionne pas il me fait planter mon programme

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Il faut que tu débug en mettant un breakpoint (F9) sur la ligne. Ensuite tu avances en pas à pas (F10/F11) et tu vois l'exception qu'il te lance. Peut être que c'est un soucis de droits d'écriture.

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Oui tout à fait c'est un droit d'écriture, peut on les modifier par le code?

  6. #6
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 17
    Points : 70
    Points
    70
    Par défaut
    Double ton backslash (c:\\mdp.xml) et retires le @, comme dans un fichier .reg de base de registre.

    Par exemple pour ouvrir le dossier Windows de C, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.Diagnostics.Process.Start("explorer.exe", "c:\\windows");
    Pour éditer un fichier avec une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                cIni ini = new cIni("c:\\test.txt");
                ini.WriteValue("section", "key", '"' + "value" + '"');
    Ou encore avec StreamWriter/Streamreader :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string str2 = "c:\\test.txt";
     using (StreamReader streamReader1 = new StreamReader(str2))

  7. #7
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Euh non le droit d'écriture c'est celui du système. Il faut que tu lances ton appli avec les droits admins etc ... Sinon, tu peux très bien écrire dans un dossier autre que la racine genre C:\Appli\Save ou une connerie comme ça. Tu check si ils n'existent pas, tu les crée et tu ne devrais plus avoir de soucis d'écriture

  8. #8
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Merci bien mais l'erreur est la même

    Quand je ne met pas de chemin, l'application fonctionne mais le fichier xml est générer sur le bureau (ou autre part selon l'emplacement de l'application).

    Mais sur le le bureau même en fichier caché, j'aurai voulu éviter

  9. #9
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Pourquoi n'installe tu pas ton appli dans un dossier et tu mets juste un raccourci sur le bureau ?

    Sinon, vérifie que tu es bien en admin et que tu lances avec les droits d'admin.

  10. #10
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Je viens d'y penser mouhahah avec inno setup!
    Génial!!!
    Merci!!

  11. #11
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    D'ailleurs, VS 2010 intègre un système d'installation très bien fait, pas besoin d'utiliser des libs à part pour un petit truc comme ça

    Pense au flag

  12. #12
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Euhhh rectification!

    Le programme génère tout de même une erreur!!

    Toujours du point de vue des droit d'écriture....

  13. #13
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    As tu vérifié les histoires de droits de comptes dont je t'ai parlé ?

  14. #14
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Enfaîte l'appli est destinée à d'autres utilisateurs j'aurai voulu anticipé le problème.
    J'ai essayé sur un XP aucun problème!!
    Mais sur Seven il suffit d'être utilisateur et cela ne fonctionne pas!!

  15. #15
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Vérifie dans le dossier ou tu souhaites installer ton application si les droits de lecture/écriture sont bien accessibles à tout le monde.

  16. #16
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Pour info je suis en lecture, mais les autre utilisateurs n'auront pas accès a mon répertoire mais a Leur disque.
    En aucun cas il y aura une connexion réseau entre nous..

  17. #17
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    J'ai trouvé théoriquement la réponse, il faudrait que je la lance en administrateur!
    Est ce possible par une ligne de code?

  18. #18
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Sinon, vérifie que tu es bien en admin et que tu lances avec les droits d'admin.
    C'était marqué un peu plus haut :p

    Mais en fait, je suis un peu pommé dans ton explication. Où se trouve l'application, comment est elle partagée, quand est ce que ton application doit lire ou écrire dans un fichier, etc ?

  19. #19
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    L'application se trouve sur le bureau, elle n'est pas partagée.
    Le but est de sauvegarder des info dans le fichier xml (il est en fichier caché sur le bureau mais j'aurai préférer qu'il soit générer autre part, par exemple a c:\)
    Ces info seront lues à la prochaine ouverture de l'application.

    Hors il me faut être en administrateur pour créer le fichier sous c:\, et j'aimerai que l'application le fasse par elle même ou bien une fenêtre s'ouvre pour me le demandé.

    Voilàààà

  20. #20
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Si elle n'est pas partagée, enregistre les infos dans mes documents (Dont tu peux retrouver le path grâce à l'énumération Environment.SpecialFolder) c'est ce que font tous les jeux. Même si t'es simple user, tu as forcément le droit d'écrire dans tes documents (Enfin si je ne dis pas de bêtises ...)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Création d'un fichier XML
    Par fantasio31 dans le forum Général Python
    Réponses: 2
    Dernier message: 09/09/2004, 17h06
  2. [XML] Création d'un fichier XML
    Par TheDarkLewis dans le forum Langage
    Réponses: 6
    Dernier message: 24/07/2004, 18h27
  3. ligne d'entête création d'un fichier XML
    Par cduterme dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 23/02/2004, 15h30
  4. [XSLT] Visualisation d'un fichier xml dans un jEditorPane
    Par Yannos94 dans le forum Format d'échange (XML, JSON...)
    Réponses: 16
    Dernier message: 09/01/2004, 17h50
  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