Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Mr.Blade.

    Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

    guten Morgen miteinander,

    und zwar hab ich ein Problem mit meinen Programm

    Das Programm soll im Temp ordner ein Ordner erstellen und darin eine text datei (das klappt auch so weit alles)
    nur das programm in die textdatei rein schreiben soll kommt immer

    Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.


    VB.NET-Quellcode

    1. If Directory.Exists(My.Computer.FileSystem.SpecialDirectories.Temp & "/" & user) = False
    2. Then My.Computer.FileSystem.CreateDirectory(My.Computer.FileSystem.SpecialDirectories.Temp & "/" & user)
    3. File.Create(My.Computer.FileSystem.SpecialDirectories.Temp & "/" & user & "/" & "pass.txt")
    4. Dim lines() As String = IO.File.ReadAllLines(My.Computer.FileSystem.SpecialDirectories.Temp & "/" & user & "/" & "pass.kps")
    5. lines(0) = My.Settings.codedname
    6. lines(4) = My.Settings.codedpass
    7. IO.File.WriteAllLines(My.Computer.FileSystem.SpecialDirectories.Temp & "/" & user & "/" & "pass.txt", lines)
    8. MsgBox("Erfolgreich")end if
    Die Datei ist gelockt, weil Du sie mit .Create erstellst. Das brauchst Du nicht. Gib einfach bei WriteAllLines Pfad an und das Verzeichnis, bzw. Datei wird automatisch erstellt, falls nicht vorhanden. Nutze bitte für Dateioperationen den System.IO NameSpace:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim theFile As String = Path.Combine("c:", "test", "text.txt")
    5. File.WriteAllText(theFile, "bla")
    6. End Sub
    7. End Class


    Nutze für das Erstellen einer Pfadangabe Path.Combine. Das nimmt Dir das Hantieren mit den "\" ab.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Lösch mal die Zeile

    VB.NET-Quellcode

    1. File.Create(My.Computer.FileSystem.SpecialDirectories.Temp & "/" & user & "/" & "pass.txt")
    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!
    Warum benutzt du nicht die System.IO.File bzw System.IO.Directory Klasse?
    Und dann ist es besser wenn du es mit den Stream ausließt, dann kannst die Datei wieder sauber schließen.

    Und zum zusammfügen von Pfade benutzt man Path.Combine.

    Fang am besten nochmal ganz neu an.