Dateipfad per OpenFileDialog ermitteln und in XML schreiben [Problem]

G3faX

Grünschnabel
Hi ;D

ersteinmal möchte ich mein Problem erklären:

Und zwar habe ich einen Button erstellt und wenn man dort draufklickt öffnet sich wegen dem OpenFileDialog welches ich eingebaut habe ein Fenster wo man eine Datei auswählen kann (ich habe es so eingestellt das es nur .exe Dateien anzeigt). Hat man nun eine .exe ausgewählt und klickt auf öffnen wird der Dateipfad in eine TextBox geschrieben.
Soweit ja nicht so schwer nun möchte ich aber diesen Dateipfad in eine XML-Datei schreiben lassen. Und hier fängt mein Problem an!!

Schreibe ich manuell ein text oder ein Pfad in das TextBox feld dann klappt das schreiben in eine XML-Datei, lass ich den Dateipfad aber mithilfe des Buttons und dem OpenFileDialog in die TextBox eintragen dann klappt es nicht.

Möchte gerne wissen wieso es dann nicht funktioniert es müsste doch eigendl. egal sein ob ich jetzt ein Dateipfad manuell reinschreibe oder halt mithilfe des OpenFileDialog es dort eingetragen wird oder irre ich mich da?

MfG G3faX .. Hoffe man kapiert das was ich hier schreibe :p
 
Also an variablen sollte es eigendl. nicht liegen denke ich mal denn ich habe ja manuell einen pfad in die TextBox geschrieben und dann hat es funktioniert nur halt beim automatischen eintragen des Pfades durch das OpenFileDialog nicht :D

Aber hier einmal mein OpenFileDialog was ausgeführt wird wenn man den Button1 drückt:

Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim progdatei As String

        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            Dim sr As New System.IO.StreamReader(OpenFileDialog1.FileName)
            progdatei = OpenFileDialog1.FileName
            TextBox1.Text = progdatei
            sr.Close()
        End If

    End Sub

MfG G3faX
 
Durch den Parameter bei deinem StreamReader überschreibst du a) die ausgewählte Datei. Nachdem du da eine Datei mit der Endung .exe auswählst, würde ich mal meinen, dass du das so nicht willst.

Zweitens: Du schreibst ein ganz normales Textfile und kein XML-Dokument.
 
Hm also das ist nur der Teil wo der ausgewählte .exe dateiname in die TextBox geschrieben wird.. das XML ist an einer anderen stelle und wird ausgeführt wenn man Button2 klickt um das ganze programm abzuschicken denn ich habe dort noch eine TextBox drin wo man den Namen des programmes eintragen kann der zu dem Pfad passt und diese beiden informationen werden dann in die xml datei geschrieben da ich gehört habe so soll es einfacher sein als mit z.b. .txt dateien oder ähnlichem..

Was allerdings auch sein könnte das ich das OpenFileDialog komplett falsch angewendet habe ^^
 
Stimmt, ist natürlich ein StreamReader .. hatte mich verlesen.

Aber:

1) Wieso die Variable progdatei? Diese ist eigentlich nur Speicherverbrauch, sonst nichts. Weiters:

2) Der StreamReader tut gar nichts. Sollte dieser eine spezielle Bestimmung haben? Wenn nein, dann weg damit.

3) Controls (natürlich auch Variablen, Methoden, Klassen, etc.) sauber benennen, damit man auch im Code weiß, was der (beispielsweise) Button oder aber auch die TextBox repräsentieren soll.

Zudem kann ich dein Problem nicht ganz nachvollziehen. D.h. es müsste dort liegen, wo das XML auch tatsächlich geschrieben wird. Aber zuerst würde ich die von dir gezeigten Zeilen säubern.
 
Hi

also erstmal danke für eure Hilfe ;)

werde das morgen alles nochmal überarbeiten so wie ihr es vorgeschlagen habt und dann mal schauen ob es funktioniert, wenn nicht kann ich es ja mal erstellen lassen und euch zukommen lasse, damit ihr euch das genau vorstellen könnt wo mein problem liegt.

EDIT: Nochmals Danke .. Habe es nun geschafft indem ich ein ganz neues OpenFileDialog geschrieben habe

Code:
With OpenFileDialog1
            .Filter = _
            "EXE-Dateien (*.exe)|*.exe"
            .FilterIndex = 1
            .RestoreDirectory = True
            .Title = "Programm auswählen"
        End With
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            file.Text = OpenFileDialog1.FileName()
        End If

MfG G3faX
 
Zuletzt bearbeitet:
Zurück