Zum Inhalt springen

StreamWriter: The process can not access the file


Empfohlene Beiträge

Geschrieben

Hallo,

ich komme gerade mit meinen kleinen Programm nicht weiter. Und zwar habe ich eine .ini-Datei wo Einstellungen drin gespeichert werden. Wenn ich jetzt in meinen Programm die Optionen aufrufe lese ich mit dem Streamreader alle wichtigen Daten aus:

'myStreamreader dem StreamReader zuweisen mit den Werten "iniPath" + "codetypes.ini"

myStreamreader = New System.IO.StreamReader(iniPath & "\codetypes.ini")


'ReadtoEnd

iniText = myStreamreader.ReadToEnd


'Füllen von Variablen mit den Einstellungen aus der Ini-Datei

ean13 = iniText.Substring(iniText.IndexOf("<ean13>") + 7, iniText.IndexOf("</ean13>") - iniText.IndexOf("<ean13>") - 7)

code39 = iniText.Substring(iniText.IndexOf("<code39>") + 8, iniText.IndexOf("</code39>") - iniText.IndexOf("<code39>") - 8)

code128 = iniText.Substring(iniText.IndexOf("<code128>") + 9, iniText.IndexOf("</code128>") - iniText.IndexOf("<code128>") - 9)

interleaved = iniText.Substring(iniText.IndexOf("<interleaved>") + 13, iniText.IndexOf("</interleaved>") - iniText.IndexOf("<interleaved>") - 13)

discrete = iniText.Substring(iniText.IndexOf("<discrete>") + 10, iniText.IndexOf("</discrete>") - iniText.IndexOf("<discrete>") - 10)


'Schliessen der Ini-Datei

myStreamreader.Close()

myStreamreader = Nothing
Wenn ich dann meine Einstellungen vorgenommen habe und wieder auf Speichern drücke sollen alle aktuellen Einstellungen mit Hilfe des Streamwriters ganz neu in die .ini-Datei geschrieben werden:
myStreamwriter = New System.IO.StreamWriter("\Program Files\scanner\codetypes.ini", False)

myStreamwriter.WriteLine("//ini-File für die Programmeinstellungen")

myStreamwriter.WriteLine("//----------------------------------------------------------------")

myStreamwriter.WriteLine("")

myStreamwriter.WriteLine("//Barcodetypen")

myStreamwriter.WriteLine("")

myStreamwriter.WriteLine("//EAN 13")

myStreamwriter.WriteLine("<ean13>" & ean13 & "</ean13>")

myStreamwriter.WriteLine("")

myStreamwriter.WriteLine("//Code 39")

myStreamwriter.WriteLine("<code39>" & code39 & "</code39>")

myStreamwriter.WriteLine("")

myStreamwriter.WriteLine("//Code 128")

myStreamwriter.WriteLine("<code128>" & code128 & "</code128>")

myStreamwriter.WriteLine("")

myStreamwriter.WriteLine("//Interleaved")

myStreamwriter.WriteLine("<interleaved>" & interleaved & "</interleaved>")

myStreamwriter.WriteLine("")

myStreamwriter.WriteLine("//Discrete")

myStreamwriter.WriteLine("<discrete>" & discrete & "</discrete>")

myStreamwriter.WriteLine("")

myStreamwriter.Close()

myStreamwriter = Nothing

Das Problem ist jetzt nur, dass ich jedesmal die Fehlermeldung "IOException wurde nicht behandelt" bekomme in der zusätzlich noch drin steht: The process can not acces the file "hier der Pfad" because it is being used by another process.

Ich verstehe nicht wieso er mir sagt, dass die Datei noch von einem anderen Prozess verwendet wird. Ich habe den Streamreader doch geschlossen u.s.w. ...

Bei Google habe ich auch schon geguckt. Es gibt zwar eine Menge Einträge zu dieser Fehlermeldung aber ich habe die Erklärungen nicht ganz verstanden.

Gruß,

Hahne

Geschrieben


myStreamreader = New System.IO.StreamReader(iniPath & "\codetypes.ini")

myStreamwriter = New System.IO.StreamWriter("\Program Files\scanner\codetypes.ini", False)

Diese beiden Zeilen enthalten Fehler. "\" leitet Escape-Sequenzen ein, d.h. um ein "\"-Symbol in den String einzufügen musst Du entweder "\\" schreiben oder vor den String ein "@" setzen. Beispiel:

string test = "Verzeichnis\\Unterverzeichnis\\Dateiname";

oder

string test = @"Verzeichnis\Unterverzeichnis\Dateiname";

Ausserdem solltest Du nicht in "Program Files" schreiben (es können die Berechtigungen fehlen), sondern an für Konfigurationsdaten vorgesehene Orte.

Ein weiteres Problem ist, dass "Program Files" je nach Betriebssystemversion und Sprachversion auch anders benannt sein kann. Generell sollte man keine festen Annahmen darüber machen, von wo das eigene Programm ausgeführt wird (es könnte ja auch in ein anderes Verzeichnis installiert worden sein) und wie der genaue Pfad zu einem Verzeichnis, in dem Konfigurationsdaten abgelegt werden dürfen, lautet.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...