Zum Inhalt springen

StreamWriter: The process can not access the file


Hahne

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen


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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...