2016-06-27 19 views
0

Das Problem ist, dass jedes Mal, wenn ich meinen Code ausführen, Linien aus der "Titles.txt" werden gelöscht, und ich weiß nicht warum. Basicly, ich laufe das Programm, dann schreibe ich in die Datei mit einem Textfeld, dann schließe ich das Programm, überprüfen Sie, ob es in die Datei geschrieben hat und es tat, ich führe es erneut und überprüfen Sie die Datei erneut und ist leer. Was kann ich tun?Zeilen bilden eine Datei beim Start C#

public Form1() 
    { 
     InitializeComponent(); 

     if(!File.Exists(mainFolder)) 
     { 
      Directory.CreateDirectory(mainFolder); 
      Directory.CreateDirectory(tabTitlesFolder); 
      var file = File.Create(tabTitles); 
      file.Close(); 
     } 
    } 
+1

Teilen Sie mehr Code pls. –

+1

Ich denke, du solltest überprüfen, ob die 'tabTitles' existieren –

Antwort

2

Sie müssen nach der Datei suchen, nicht nach dem Ordner.

public Form1() 
{ 
    InitializeComponent(); 

    if(!File.Exists(tabTitles)) // check if the file exists, (you had a check on mainFolder) 
    { 
     Directory.CreateDirectory(mainFolder); 
     Directory.CreateDirectory(tabTitlesFolder); 
     var file = File.Create(tabTitles); // this is what you are creating so also what you should be checking for above in the if 
     file.Close(); 
    } 
} 

Auch wird File.Create die Datei überschreiben, wenn sie bereits vorhanden ist, see the documentation.

Schließlich sollten Typen, die IDisposable implementieren, in einen using Block oder einen try/finally Block gehüllt werden, um sicherzustellen, dass sie vom Code freigegeben werden, auch wenn eine Ausnahme ausgelöst werden sollte. File.Create gibt FileStream zurück, das wegwerfbar ist, also sollte es verpackt werden.

using(File.Create(tabTitles)){} 

Wie Sie das Ergebnis nicht verwenden Sie es etwas nicht zuweisen müssen, aber Sie könnten, wenn Sie in die Datei schreiben wollte.

using(var file = File.Create(tabTitles)){ 
    // do something with file 
} 
0

File.Exists gibt false für Verzeichnisse zurück, daher erstellen Sie die Datei bei jedem Lauf neu.