Stránka 1 z 1

C# XMLDocument s FileStream

Napsal: stř 4. črc 2012, 00:50
od arxeiss
Mám problém,
píšu aplikaci a chtěl jsem, abych mohl zamykat projektový soubor, který si uživatel vytvoří, což ale klasický XMLDocument neudělá, našel jsem na netu, že můžu XMLDocument ukládat i přes stream, tak jsem to napsal, ale mám problém... Pokud výsledný XML soubor je menší než původní, tak to ponechá zbytek v souboru.

Původní soubor

Kód: Vybrat vše

<?xml version="1.0" encoding="utf-8"?>
<root>
   <vnoreny atribut="1"/>
</root>
programově ho poté upravím a výsledek by měl být

Kód: Vybrat vše

<?xml version="1.0" encoding="utf-8"?>
<root>
   <vnoreny/>
</root>
jenomže jak zkončí zápis, tak v souboru zůstane zbytek dat, takže výsledný soubor vypadá

Kód: Vybrat vše

<?xml version="1.0" encoding="utf-8"?>
<root>
   <vnoreny/>
</root>ny/></root>
Takto dělám se streamy a XMLDocumentem

Kód: Vybrat vše

XMLstream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
xml.Load(XMLstream);

ukládání:
XMLstream.Flush();
XMLstream.Position = 0;
xml.Save(XMLstream);
Díky za jakoukoli radu

Re: C# XMLDocument s FileStream

Napsal: stř 4. črc 2012, 11:04
od arxeiss
Vyřešeno, musím dát místo XMLstream.position = 0;

Kód: Vybrat vše

XMLstream.SetLength(0);
tím se mi soubor vymaže a nastaví na začátek opět.