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

Framework .NET Discussion :

Fermer un fichier xml en lecture.


Sujet :

Framework .NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut Fermer un fichier xml en lecture.
    J'ai un fichier xml que j'accède en lecture - écriture.
    J'aimerai que pendant tout ce temps on ne puisse pas y accèder (ni en lecture, ni en écriture).

    Est - ce que c'est gérer automatiquement ?
    Si oui comment définir que le fichier est à nouveau accessible (un genre de méthode Close) ?

    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 : 43
    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
    Par défaut
    Par défaut, tant que le fichier est ouvert (que ce soit en lecture ou en écriture), il est impossible de l'ouvrir en écriture à nouveau, mais il reste possible de l'ouvrir en lecture. Pour interdire complètement toute autre ouverture, il faut l'ouvrir en mode exclusif (FileShare.None) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileStream fs = new FileStream("toto.xml", FileMode.Open, FileAccess.Read, FileShare.None);

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    J'ai oublié de préciser que j'utilisais Linq pour accèder au xml.
    Pour ouvrir un Xml j'utilise donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monXDocument.Load("fichier.xml");
    Mais peut être - puis je englober cela dans la solution proposée plus haut ?

  4. #4
    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 : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Tu as une surcharge de la méthode Load qui prend en paramètre un Stream.

    http://msdn.microsoft.com/fr-fr/libr...ad(VS.95).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.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    Oui mais je n'utilise pas Silverlight.

    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 : 43
    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
    Par défaut
    Citation Envoyé par piotrr Voir le message
    Oui mais je n'utilise pas Silverlight.

    merci
    Ce n'est pas spécifique à Silverlight
    http://msdn.microsoft.com/fr-fr/libr...ment.load.aspx

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    Oui mais comme j'utilise le framework .NEt je ne peux pas avoir accès à la surcharge qui prend un stream en argument.

  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 : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Utilise celle qui prend en paramètre un XmlReader.
    Tu crées le XmlReader à partir d'un stream :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    XmlReader.Create(Stream stream).
    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 éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    C'est ce que je fais.

    Voici mon code pour exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FileStream fs = new FileStream(Settings.Default.tmp_images_referencement_file, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
                XmlReader textReader = XmlReader.Create(fs);
     
                XDocument temporaryImagesDoc = XDocument.Load(textReader);
                XElement newMiniature = new XElement("sous élément à rajouter");
                temporaryImagesDoc.Element("nom de mon élément paren").Add(newMiniature);
     
                XmlWriter textWriter = XmlWriter.Create(fs);
                temporaryImagesDoc.Save(textWriter);
    Tout se passe bien ormis le fait que rien n'est écrit dans le fichier ...

Discussions similaires

  1. Rechercher fichier xml à chaque lecture
    Par EleanoreDes dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/05/2015, 16h58
  2. ouvrir un fichier xml en lecture avec silverlight 3
    Par rimenis dans le forum Silverlight
    Réponses: 3
    Dernier message: 07/05/2011, 14h20
  3. [XML] Lire le contenu d'un fichier XML et lecture des valeurs
    Par altair8080 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/07/2010, 03h17
  4. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/03/2005, 08h57

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