StreamWriter - Datei wird nicht mehr geschrieben nach OpenFileDialog



  • Hallo,

    ich habe in meinem Programm mehrere TextBoxen und will deren Inhalt auf Knopfdruck in eine Datei schreiben.
    Dies klappt auch einwandfrei sowohl mit der StreamWriter- als auch der XmlTextWriter Klasse.

    Wenn ich jetzt allerdings einer dieser TextBoxen den Dateinamen eines OpenFileDialogs zuweise wird danach keine Datei mehr geschrieben.

    if (openFileDialog1->ShowDialog() ==System::Windows::Forms::DialogResult::OK)
        tb_path->Text = openFileDialog1->FileName;
    
    XmlTextWriter ^xmlsave = gcnew XmlTextWriter("sitemap.xml", System::Text::Encoding::UTF8);
    xmlsave->Formatting = Formatting::Indented;
    xmlsave->WriteStartDocument(false);
    
    xmlsave->WriteStartElement("profile");
    xmlsave->WriteElementString("name",tb_profilename->Text);
    xmlsave->WriteElementString("parameter",tb_parameter->Text);
    //xmlsave->WriteElementString("path",tb_path->Text);   
    xmlsave->WriteEndElement();
    xmlsave->Flush();
    xmlsave->Close();
    

    Dabei ist es egal ob ich die Zeile 8 in meinem Listing auskommentiert habe oder nicht.
    Nach dem oberen Codeblock schreibt er keine Dateien mehr.

    gruß pek



  • Scheint mir, dass die Sache mit der TextBox kein Problem sein sollte.
    Es hat ja nichts mit dem XmlWriter zu tun.

    Gibt es Exceptions?
    Was passiert beim durch-steppen?

    Simon



  • Nur mal so als Vorschlag pack doch nach den If Block mal nen MessageBox output, und schau mal ob die ausgegeben wird.
    Wenn nicht weißt du das es nix mit dem Writer oder der Textbox zu tun hat (was ich wie mein Vorredner schon vermutet hat auch vermute) - sondern das Programm einfch Komplett stoppt.
    Poste doch mal den Lückenlosen Quelltext dann kann man mal eher schauen wo´s hängt.



  • Ok ich war nicht aufmerksam genug. 🙂

    Er packt das xml file danach immer in den Ordner aus dem die ausgewählte Datei stammt.

    Muss mal schaun wo sich das Arbeitsverzeichniss genauer bestimmen lässt.

    Danke euch beiden.



  • *edit:

    openFileDialog1->RestoreDirectory = true;
    

    Jetzt ist alles ist alles wunderbar.


Anmelden zum Antworten