Удалить файл с помощью File.Delete, а затем использовать Streamwriter для создания того же файла?

StackOverflow https://stackoverflow.com/questions/1291577

  •  18-09-2019
  •  | 
  •  

Вопрос

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)
    {       
    }            
}

Будет ли мой метод правильно удалять файл, затем создавать его с именем «realmlist.wtf», а затем записывать в него строку?

Я немного в замешательстве, потому что не вижу линии, где это на самом деле создает файл еще раз.Или процесс создания StreamWriter автоматически создает файл?

Это было полезно?

Решение

Stream Writer создаст файл, если он не существует.Он создаст его в конструкторе, поэтому при создании экземпляра StreamWriter.

Другие советы

Знаете, если вы передадите экземпляр FileStream конструктору StreamWriter, он может просто перезаписать файл.Просто передайте его вместе с конструктором.

http://msdn.microsoft.com/en-us/library/system.io.filestream.filestream.aspx

Пример:

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);
}

Кроме того, при этом вам не нужно будет использовать .Close метод.А using() функция сделает это за вас.

Пытаться System.IO.File.CreateText.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top