"Datei wird von einem anderen Prozess verwendet" nach der Datei.Create()

Ich habe eine Anwendung, die erstellt eine text Datei, wenn die Datei nicht bereits vorhanden ist und schreibt dann etwas. Es funktioniert großartig, das erste mal durch, wenn ich erstellen und sofort auf die Datei schreiben. Mein problem ist, dass das nächste mal dieser code wird ausgeführt und die Datei bereits angelegt ist, wirft er eine exception wenn ich versuche zu schreiben in die Datei. Bekomme ich die "Datei wird von einem anderen Prozess verwendet" - Fehler.

So scheint es, die ich brauche, um die Datei zu schließen, nachdem ich ihn erstellen? Ich sehe nicht, wie Sie dies tun, obwohl, aber es ist wahrscheinlich etwas sehr einfaches. Ich poste etwas code, aber es ist nicht wirklich notwendig, ich bin nur mit Vanille gewürzt string builder und stream writer.

    Private Sub createFileLocations()
        If Not Directory.Exists("./Path") Then
            Directory.CreateDirectory("./Path")
        End If
        If clsGeneralSettings.Printer1 IsNot Nothing Then
            If Not File.Exists("./Path/File1" & ".txt") Then
                File.Create("./Path/File1" & ".txt")
            End If
        End If
    End Sub


Private Sub AppendTextFile(randomId As String, PrintDate As Date, PrintName As String)
    Try
        Dim _stringBuilder As StringBuilder = New StringBuilder
        Dim _StreamWriter As StreamWriter
        Dim fileName As String
        If PrintName = clsGeneralSettings.Printer1 Then
            fileName = "./Path/File1" & ".txt"
            qPrinter1.Enqueue(randomId)
            If qPrinter1.Count > 10 Then
                qPrinter1.Dequeue()
            End If
             _stringBuilder.AppendLine(PrintDate + " | " + randomId)
            _StreamWriter = New StreamWriter(fileName, True)
        End If
        'Todo: Figure this out

        Using _StreamWriter
            _StreamWriter.Write(_stringBuilder.ToString)
            _StreamWriter.Flush()
            _StreamWriter.Close()
            _stringBuilder.Clear()
        End Using
    Catch ex As Exception
    End Try
End Sub
ok, die Sie nicht benötigen, entfernen Sie die C# - tag .Netto ist .Net, und wenn jemand gibt mir die Antwort für C# kann ich es übersetzen zu vb. Es gibt 10x mehr Leute mit C# - tag gefällt, als der vb.net ein
Duplikat von System.IO.File.Erstellen Sie sperren einer Datei.
OK. Sie sind frei, um es erneut hinzuzufügen, wenn Sie möchten; auch wenn Sie dies angegeben haben, in Ihre Frage (nehmen Sie beide VB.NET und C# answrs). In jedem Fall bin ich sicher, dass alle VB.NET problem perfekt gelöst von den Jungs kommen, um die VB.NET tag. Eigentlich dein problem ist nicht allzu schwierig...
BTW Sie nicht sogar brauchen, um die Nutzung Datei.Erstellen. StreamWriter kümmert sich um alle Eventualitäten (Datei vorhanden oder nicht). BTW2 innerhalb der Using-Anweisung, die Sie nicht brauchen, um zu verwenden .Flush oder .In der Nähe; Mit und kümmert sich um alle die "Entsorgung " Aktionen".
Danke, viel hilfreicher

InformationsquelleAutor Brandon | 2013-10-31

Schreibe einen Kommentar