Entwickler-Ecke
IO, XML und Registry - Streamreader - Kein zugriff auf datei..
deada - Do 25.11.10 16:50
Titel: Streamreader - Kein zugriff auf datei..
hallo alleseits,
habe mit diesem Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85:
| private void BTsaveCurrList_Click(object sender, EventArgs e) { string selectedParty = CBparty.SelectedItem.ToString(); string FileName = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\StepSaveItems.txt"; string itemValue;
StreamWriter writeFile = new StreamWriter(FileName);
if (File.Exists(FileName)) { writeExistingContent(); writeFile.WriteLine("Party: " + selectedParty); writeFile.WriteLine("--------------------------------------");
foreach (object itemo in CLBlist.CheckedItems) {
itemValue = itemo.ToString();
if (File.Exists(FileName)) {
writeFile.WriteLine(itemValue);
} else { writeFile.WriteLine(itemValue);
}
}
writeFile.WriteLine("--------------------------------------"); writeFile.WriteLine(); } else { writeFile.WriteLine("Party: " + selectedParty); writeFile.WriteLine("--------------------------------------");
foreach (object itemo in CLBlist.CheckedItems) {
itemValue = itemo.ToString();
if (File.Exists(FileName)) {
writeFile.WriteLine(itemValue);
} else { writeFile.WriteLine(itemValue);
}
}
writeFile.WriteLine("--------------------------------------"); writeFile.WriteLine(); } writeFile.Close();
}
public String writeExistingContent() { string existingContent = ""; string FileName = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\StepSaveItems.txt";
StreamReader readContent = new StreamReader(FileName); existingContent = readContent.ReadToEnd(); readContent.Close();
return existingContent; } |
folgende Exception:
Der Prozess kann nicht auf die Datei "G:\Users\Sa\AppData\Local\StepSaveItems.txt" zugreifen, da sie von einem anderen Prozess verwendet wird.
Ieine Lösung?
Moderiert von
Kha: Topic aus WinForms verschoben am Do 25.11.2010 um 20:05
jaenicke - Do 25.11.10 17:16
Du hast die Datei im StreamWriter schon offen und versuchst danach in writeExistingContent auf die Datei zuzugreifen.
Trashkid2000 - Do 25.11.10 17:18
Wollte ich auch gerade schreiben.
Und den Sinn von
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| if (File.Exists(FileName)) { writeFile.WriteLine(itemValue); } else { writeFile.WriteLine(itemValue); } |
musst Du mir mal genauer erklären!
Marko
deada - Do 25.11.10 18:28
jaenicke hat folgendes geschrieben : |
Du hast die Datei im StreamWriter schon offen und versuchst danach in writeExistingContent auf die Datei zuzugreifen. |
wie soll ich es dann lösen? ich beim klick auf den button den bereits vorhandenen inhalt der datei mit dem rest speichern..
jaenicke - Do 25.11.10 20:43
Wie wäre es
zuerst den alten Inhalt auszulesen und
dann die Datei zum Schreiben zu öffnen?
Aber davon abgesehen: Wozu willst du den Inhalt denn überhaupt auslesen, wenn du ohnehin nur weitere Daten
anhängen willst?
Stell dir einmal vor du willst in ein Notizbuch schreiben. Was du jetzt machst ist:
Zuerst setzt du auf Seite 10 den Stift zum Schreiben an und wunderst dich dann, dass du so schlecht parallel am Anfang anfangen kannst zu lesen...
Und warum solltest du zuerst den alten Inhalt lesen, wenn du doch nur dahinter weiterschreiben willst?
Schau dir einfach einmal die möglichen Konstruktoren an:
http://msdn.microsoft.com/de-de/library/system.io.streamwriter.streamwriter.aspx
Ja, ich weiß: zu viel zu lesen... Schau dir den an...
http://msdn.microsoft.com/de-de/library/36b035cb.aspx
deada - Do 25.11.10 21:26
jaenicke hat folgendes geschrieben : |
Wie wäre es zuerst den alten Inhalt auszulesen und dann die Datei zum Schreiben zu öffnen?
Aber davon abgesehen: Wozu willst du den Inhalt denn überhaupt auslesen, wenn du ohnehin nur weitere Daten anhängen willst?
Stell dir einmal vor du willst in ein Notizbuch schreiben. Was du jetzt machst ist:
Zuerst setzt du auf Seite 10 den Stift zum Schreiben an und wunderst dich dann, dass du so schlecht parallel am Anfang anfangen kannst zu lesen...
Und warum solltest du zuerst den alten Inhalt lesen, wenn du doch nur dahinter weiterschreiben willst?
Schau dir einfach einmal die möglichen Konstruktoren an:
http://msdn.microsoft.com/de-de/library/system.io.streamwriter.streamwriter.aspx
Ja, ich weiß: zu viel zu lesen... Schau dir den an...
http://msdn.microsoft.com/de-de/library/36b035cb.aspx |
Der Button wird öfters im laufendem Programm gedrückt, deswegen das öfnen beider streamas. Sonst würd er mir die datei überschreiben oder?
deada - Do 25.11.10 21:32
jaenicke hat folgendes geschrieben : |
Wie wäre es zuerst den alten Inhalt auszulesen und dann die Datei zum Schreiben zu öffnen?
Aber davon abgesehen: Wozu willst du den Inhalt denn überhaupt auslesen, wenn du ohnehin nur weitere Daten anhängen willst?
Stell dir einmal vor du willst in ein Notizbuch schreiben. Was du jetzt machst ist:
Zuerst setzt du auf Seite 10 den Stift zum Schreiben an und wunderst dich dann, dass du so schlecht parallel am Anfang anfangen kannst zu lesen...
Und warum solltest du zuerst den alten Inhalt lesen, wenn du doch nur dahinter weiterschreiben willst?
Schau dir einfach einmal die möglichen Konstruktoren an:
http://msdn.microsoft.com/de-de/library/system.io.streamwriter.streamwriter.aspx
Ja, ich weiß: zu viel zu lesen... Schau dir den an...
http://msdn.microsoft.com/de-de/library/36b035cb.aspx |
okay dank dir, hatte wohl logik probleme. dank dir =)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!