Zugriff auf Datei verweigert, weil Sie schon benutzt wird!

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Novazizo|Sabrina.

    Zugriff auf Datei verweigert, weil Sie schon benutzt wird!

    Hallo liebe Community,

    folgendes Problem besteht momentan in meinem Code:

    Beim Debuggen bekomm ich immer die Fehlermeldung in Zeile 12 "Der Prozess kann nicht auf die Datei "C:\???\???.txt" zugreifen, da sie von einem anderen Prozess verwendet wird."

    VB.NET-Quellcode

    1. Dim Pfad As String = "C:\???\???.txt"
    2. Dim NeueTextdatei As New FileStream("C:\???\" & VornameBox.Text & " " & NachnameBox.Text & ".txt", FileMode.Append)
    3. ' neuen Datensatz schreiben
    4. If System.IO.File.ReadAllLines(Pfad).Count > 0 Then
    5. Dim Text As String = (VornameBox.Text & " " & NachnameBox.Text)
    6. System.IO.File.AppendAllText(Pfad, vbNewLine)
    7. System.IO.File.AppendAllText(Pfad, Text)
    8. NeueTextdatei.Close()
    9. Else
    10. Dim Text As String = (VornameBox.Text & " " & NachnameBox.Text)
    11. System.IO.File.AppendText(Pfad)
    12. System.IO.File.AppendAllText(Pfad, Text)
    13. NeueTextdatei.Close()
    14. End If


    Wo liegt der Fehler? Liegt es daran das ich die Datei in der If-Abfrage mit System.IO... öffne und nicht wieder schließe?
    Wie kann ich sie dann wieder schließen, sodass die Abfrage funktioniert?

    MfG
    No
    Warum öffnest du eigtl. eine Datei über NeueTextdatei? So wie ich das jetzt erkenne wird die im Code doch überhaupt nicht verwendet?
    Du hängst 2 mal Texte an die Datei an. Möglicherweise hängt es da dran?
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub

    VB.NET-Quellcode

    1. ' Pfad festlegen
    2. Dim pfad As String = IO.Path.Combine(IO.Path.GetTempPath, "Testdatei.txt")
    3. ' Inhalt zusammenbasteln
    4. Dim inhalt As New System.Text.StringBuilder
    5. inhalt.AppendLine("Neue Zeile 1")
    6. inhalt.AppendLine("Neue Zeile 2")
    7. inhalt.AppendLine("u.s.w.")
    8. ' Inhalt in die Datei speichern.
    9. IO.File.AppendAllText(pfad, inhalt.ToString)

    IO.File.AppenAllText bzw. WriteAllText kümmert sich schon um das Öffnen und Schliessen der Datei, daher brauchst Du diese nicht extra nochmal zu öffnen.
    Hallo und Danke für die schnellen antworten:

    @ Fury: Die Datei "NeueTextdatei" wird im späteren Verlauf noch gebraucht deswegen erzeuge ich dort eine.. Hätte ich nicht mit hier reinschreiben müssen... hat ja nur verwirrung gestifftet ;)

    @ xtt02: Danke für die Hilfe...

    habe es verstanden und verarbeitet... So ist mein Code auch viel übersichtlicher ;)

    mfG
    No

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Novazizo|Sabrina“ ()