Ich habe eine Anwendung, die eine TXT-Datei erstellen und schreiben Sie ein Protokoll. Ich erstelle die txt-Datei mit dem folgenden Code:.txt-Datei mit vb.net löschen
If System.IO.File.Exists(sFileName) = True Then
System.IO.File.Delete(sFileName)
End If
'System.IO.File.Create(sFileName) '.dispose
Dim objWriter As New System.IO.StreamWriter(sFileName, True)
Wenn ich das Protokoll (mit objWriter.WriteLine) fertig zu schreiben und es (objwriter.close und objwriter.dispose), schicken Sie es per Post und müssen schließen um es zu löschen.
Um die Datei ich diesen Code verwenden, um zu löschen:
For i = 0 To 10
Try
'System.IO.File.Delete(sFileName)
'My.Computer.FileSystem.DeleteFile(sFileName, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently)
My.Computer.FileSystem.DeleteFile(sFileName)
Exit For
Catch ex As Exception
If i = 10 Then
invioMailTest(ex.ToString)
End If
Threading.Thread.Sleep(1000)
End Try
Next
Der Code in der lokalen funktioniert gut, aber wenn ich es auf dem Server ausgeführt (als Administrator) es gibt mir die folgende Fehlermeldung:
System.IO.IOException: The process cannot access the file 'C:\Log_Eventi\Export log 2016-04-13.txt' because it is being used by another process.
ich weiß nicht, wie es zu löschen und ich bin auf sie zu viel Zeit zu verlieren ....
http://stackoverflow.com/a/26741192/2118383 –
Mögliches Duplikat von [IOException: Der Prozess kann nicht auf die Datei 'Dateipfad' zugreifen, da sie von einem anderen Prozess verwendet wird (http://stackoverflow.com)/questions/26741191/ioexception-the-process-kann nicht auf die Datei-Datei-Pfad zugreifen-weil-es-ist-sein) –
Hängt davon ab, welcher Prozess es verwendet. Wenn es Ihr Programm ist, dann vergewissern Sie sich, dass Sie die Datei immer richtig geschlossen haben. Wenn es ein anderes Programm ist, wird das schwieriger. Außerdem müssen Sie die Datei nicht direkt vor dem Öffnen löschen, sondern öffnen Sie sie nicht als Anhang. –