Poniżej kod zapisujący do Xml:
public void ZapiszDoXml(List<ZbiorButtonow> do_zapisu, string z)
{
SaveFileDialog nowyplik = new SaveFileDialog();
nowyplik.ShowDialog();//wyświetl okienko dialogowe
nowyplik.Filter = "XML Doc|*.xml";
nowyplik.Title = "XML";
FileInfo fileInfo = new FileInfo(z);
Niestety w tym momencie program nie otwiera pliku:
FileStream fileStream = new FileStream(z, FileMode.Open);
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] data = binaryReader.ReadBytes((int)fileInfo.Length);
XmlWriter xmlWriter = XmlWriter.Create(nowyplik.FileName);
XmlSerializer zapisywacz = new XmlSerializer(typeof(List<ZbiorButtonow>));
if (nowyplik.FileName != "")
{
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Obraz binarny");
xmlWriter.WriteBase64(data, 0, data.Length);
zapisywacz.Serialize(xmlWriter, do_zapisu);
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
}
}
Zapis listy -działa. Problem jest, gdy próbuję otworzyć obraz z podanej lokalizacji.
W programie użytkownik wybiera obraz z komputera, obraz się otwiera, a potem chcę go zapisać.
Czy powodem niemożliwości zapisu jest to, że użytkownik wcześniej otworzył obraz?
Jak poprawić kod?