ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
190
190
EMPFEHLEN
-
24.05.10 19:39 #1KotNaschor Tutorials.de Gastzugang
Hallo,
ich habe mit
einen Ordner erzeugt, und habe mitCode :1
Directory.CreateDirectory("Options");
eine Datei in diesem ordner erstellt (falls noch keine drin war).Code :1 2
if (!File.Exists("Options/options.save")) File.Create("Options/options.save");
und jetzt das problem!
wenn ich danach auf diese datei zugreifen will, nähmlich so:
sagt er mir das, dass nicht geht weil ein anderer Prozess grad auf die Datei zugreift.Code :1
Options_arr = File.ReadAllLines("Options/options.save");
Das passiert aber nur wenn er die Datei gerade auch erstellt hat, also muss es ja denke ich mal an File.Create liegen oda?
Wie kann man das besser machen?
-
Create öffnet einen Stream zur neuen Datei (macht Sinn, üblicherweise schreibt man danach was in die Datei). Den musst du schließen.
Code :1 2
if (!File.Exists("Options/options.save")) File.Create("Options/options.save")[b].Close()[/b];
-
24.05.10 20:02 #3
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.783
Hi.
File.Create erstellt eine Datei, und liefert dir einen FileStream auf die Datei zurück. Sprich: dein Aufruf öffnet die Datei auch.
Also entweder schließt du deine Datei gleich wieder...
Code csharp:1 2
if (!File.Exists("Options/options.save")) File.Create("Options/options.save").Close();
..oder du baust dein Konstrukt so um, dass wenn die Datei nicht existiert, auch nichts gelesen wird.
lg..With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet. Hier gibts auch .net Support ^^
Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions
-
24.05.10 20:26 #4KotNaschor Tutorials.de Gastzugang
ah vielen dank euch beiden!
-
Hi, dass mit dem .Close() kannte ich bisher noch gar nicht.
Ich habe mir da was zusammengeschrieben, und zwar damit:
Code :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
// In AllFilesServer sind strings mit Datei-Pfaden. foreach (string files in AllFilesServer) { if (!File.Exists(files)) { //start = DateTime. start = DateTime.Now; //Endlosschleife. while (true) { //pruefzeit = DateTime. pruefzeit = DateTime.Now; try { //Hier wird überprüft, ob der Zugriff auf die Datei schon 10 Sekunden oder länger dauert. if ((pruefzeit.Ticks - start.Ticks) >= (10 * TimeSpan.TicksPerSecond)) { //Wenn ja wird die Schleife abgebrochen. (LogEintrag ist eine Liste, die Logeinträge verwaltet. Hier wird z.B. die Gehlermeldung "Zeitüberschreitung beim Versuch die Datei zu kopieren.") LogEintraege.Add(new LogEintrag(DateTime.Now, 0008)); break; } // Hier wird die Datei Kopiert. Wenn die Datei den Zugriff verweigert, wird das catch ausgelöst. File.Copy(AllFilesLocal[counter].ToString(), files, true); // Log wird geschrieben. LogEintraege.Add(new LogEintrag(DateTime.Now, 0010, files)); //Die while-schleife wird beendet. break; } //einmaliges dient dazu das log über das misslingen des Kopierens nur ein mal zu schreiben. catch { if (einmaligesLog == true) { LogEintraege.Add(new LogEintrag(DateTime.Now, 0007)); einmaligesLog = false; } } } } }
Also der Code versucht eine Datei zu kopieren. Wenn diese sich nicht kopieren lässt, dann wird geschaut, ob seit beginn des kopier-veruchs 10 sec vergangen sind. Wenn ja, dann wird abgebrochen. ansonsten läuft die schleife als endlosschleife durch und versucht jedesmal die datei zu kopieren.
Ähnliche Themen
-
Ordner mit Inhalt erzeugen
Von just-click im Forum PHPAntworten: 4Letzter Beitrag: 28.08.08, 13:52 -
Probleme mit fat jar erstellten jar-Datei
Von m4uz im Forum JavaAntworten: 0Letzter Beitrag: 21.11.07, 15:10 -
Ordner auslesen und Selectfeld erzeugen
Von Kahmoon im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 09.03.07, 10:25 -
Exe-Datei von erstellten Programmen
Von DeChecka im Forum Delphi, Kylix, PascalAntworten: 1Letzter Beitrag: 06.09.05, 13:05 -
Datei erstellten, geht aber nicht...
Von SolarStern im Forum PHPAntworten: 4Letzter Beitrag: 02.08.03, 12:50





Zitieren


Login





