Prozess kann nicht auf Datei zugreifen?

  • VB6
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Bluespide.

    Prozess kann nicht auf Datei zugreifen?

    Guten Abend,
    ich probiere in Visual Studio die Tage ein wenig herum und wollte ein kleines "Test Programm" als Übung für mich selber erstellen. Es geht darum Das ich ein Textfeld habe in den ich ein Namen eintragen kann, darunter befindet sich ein Textfeld indem ich.. naja, ein Text eingeben kann. Wenn ich nun auf den Knopf "Generieren" drücke, erstellt er mir den Ordner und das Textdokument mit dem Dazugehörigen Namen, und alle Dateinamen die sich in dem Ordner befinden werden i einer Listbox angegeben. Wenn ich nun aber versuche in diese Textdatei den Text (2. Textfeld) hineinzuschreiben, tritt dieser Fehler auf:

    " Ein Ausnahmefehler des Typs "System.IO.IOException" ist in mscorlib.dll aufgetreten. Zusätzliche Informationen: Der Prozess kann nicht auf die Datei "C:\TestTest1\Test1.txt" zugreifen, da sie von einem anderen Prozess verwendet wird."

    Hier ist mein Code:
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Public Class Form1
    2. ' Variablen
    3. Public Pfad As String = "C:\TestTest1\"
    4. Public Datei As String
    5. Public Leer As String = ""
    6. Public Script As String
    7. Public auflistung
    8.  
    9.  
    10. ' Speichersystem
    11. Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    12. ' Checkt ob ein Name zugewiesen wird oder nicht
    13. If Name1.Text = Leer Then
    14. MsgBox("Bitte geben Sie einen Namen an!")
    15. Else
    16. ' Name wurde zugewiesen
    17. Script = Script_Text.Text
    18. Datei = "C:\TestTest1\" + Name1.Text + ".txt"
    19.  
    20. If (System.IO.Directory.Exists(Pfad)) Then
    21. OrdnerErstellt:
    22. If (System.IO.File.Exists(Datei)) Then
    23. 'Datei Existiert
    24. Form2.Show()
    25. Else
    26. 'Datei Existiert nicht
    27. System.IO.File.Create(Me.Datei)
    28. Dim dir As New System.IO.DirectoryInfo(Me.Pfad)
    29. ListBox1.Items.Clear()
    30. For Each file As System.IO.FileInfo In dir.GetFiles
    31. Me.ListBox1.Items.Add(file.Name)
    32. Next
    33.  
    34.  
    35. System.IO.File.WriteAllText(Datei, Script_Text.Text)
    36.  
    37. End If
    38. Else
    39. IO.Directory.CreateDirectory(Pfad)
    40. GoTo OrdnerErstellt
    41. End If
    42. End If
    43.  
    44.  
    45. End Sub
    46. End Class]
    Spoiler]

    Habe schon seit 2 Stunden probiert selbständig eine Lösung zu finden, jedoch bekomme ich es nicht hin.
    Ich hoffe ihr könnt einem Anfänger helfen :)

    Daenni schrieb:

    VB.NET-Quellcode

    1. Form2.Show()
    Gugst Du hier.

    Daenni schrieb:

    VB.NET-Quellcode

    1. GoTo OrdnerErstellt
    Stell den Code so um, dass Du kein GoTo brauchst (dreh das If um).
    Streiche diese Zeile ersatzlos, die brauchst Du nicht:

    Daenni schrieb:

    VB.NET-Quellcode

    1. System.IO.File.Create(Me.Datei)

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!