VisualBasic Der Prozess kann nicht auf die Datei zugreifen...

second.name

Lieutenant
Registriert
Sep. 2009
Beiträge
712
Hallo Forum,

ich hänge schon eine Weile an folgendem Problem:

Ich schreibe mit VB.Net wie folgt eine Stapelverarbeitungsdatei:


Code:
Using StreamWriter As New System.IO.StreamWriter(My.Settings.BATFile, False, System.Text.Encoding.ASCII)
StreamWriter.Write(BATLines(0))
StreamWriter.Close()
End Using

anschließend führe ich die Datei mit "Shell" aus

Code:
Shell(My.Settings.BATFile, AppWinStyle.NormalFocus, True)

und erhalte sporadisch den folgenden Fehler.

System.IO.IOException: Der Prozess kann nicht auf die Datei "C:\Users\MuM\TTi\Ctrl_Files\BATFile.bat" zugreifen, da sie von einem anderen Prozess verwendet wird.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
bei TTi.Ctrl_Main.Synchronisation(Int16 Value, String Title)

Wo liegt der Fehler? ...Ich schreibe schließlich die Datei in einem "Using-Block"!?
 
Antivirus Software greift gerade drauf zu? Daher das file locking?

Zum Test diese schon mal abgeschaltet?

Oder das Filesystem hat die Datei einfach zu dem Zeitpunkt des Zugriff einfach noch nicht geschrieben, da Asyc. Einfach mal deinen Thread für 5 Sekunden schlafen legen und dann erst den Zugriff probieren, wenns nicht die AV Software ist.
 
Zuletzt bearbeitet:
...Ich habe auch schon eine Wartezeit programmiert - hilft aber auch nix! :( ...Und der Using-Block sollte doch alle Ressourcen freigeben, bevor "es weiter geht",oder!?
 
Ich muss das Thema noch einmal aufgreife, denn es läuft noch immer nicht... Ich habe mit:
Code:
System.Threading.Thread.Sleep(10000)
sogar schon eine lange Wartezeit programmiert doch der Fehler kommt nach wie vor sporadisch!?
 
Zurück
Oben