Datei löschen File.Delete und anschließend eine Stream mit der gleichen Datei erstellen?
-
18-09-2019 - |
Frage
public void LoadRealmlist()
{
try
{
File.Delete(Properties.Settings.Default.WoWFolderLocation +
"Data/realmlist.wtf");
StreamWriter TheWriter =
new StreamWriter(Properties.Settings.Default.WoWFolderLocation +
"Data/realmlist.wtf");
TheWriter.WriteLine("this is my test string");
TheWriter.Close();
}
catch (Exception)
{
}
}
Wird meine Methode ordnungsgemäß eine Datei zu löschen, dann eine mit „realmlist.wtf“ als Name und dann eine Linie, um es zu schreiben?
Ich bin ein bisschen verwirrt, weil ich nicht die Linie sehen kann, wo es tatsächlich schafft , um die Datei erneut. Oder ist der Akt der Schaffung eines Stream eine Datei automatisch erstellen?
Lösung
Der Stream-Writer wird die Datei erstellen, wenn es nicht existiert. Es wird in dem Konstruktor erstellen, so dass, wenn der Stream instanziiert wird.
Andere Tipps
Sie wissen, wenn Sie eine Filestream-Instanz mit dem Stream Konstruktor übergeben, kann sie einfach eingestellt werden, um die Datei zu überschreiben. geben sie nur zusammen mit dem Konstruktor.
http://msdn.microsoft.com /en-us/library/system.io.filestream.filestream.aspx
Beispiel:
try
{
using (FileStream fs = new FileStream(filename, FileMode.Create))
{
//FileMode.Create will make sure that if the file allready exists,
//it is deleted and a new one create. If not, it is created normally.
using (StreamWriter sw = new StreamWriter(fs))
{
//whatever you wanna do.
}
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.Message);
}
Auch mit dieser Sie nicht die .Close
Methode verwenden müssen. Die using()
Funktion macht das für Sie.
Versuchen System.IO.File.CreateText
.