1
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 的行为会自动创建文件?

4

3 回答 3

3

如果文件不存在,Stream Writer 将创建该文件。它将在构造函数中创建它,因此当 StreamWriter 被实例化时。

于 2009-08-18T03:06:13.337 回答
1

要知道,如果将 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()功能为您做到这一点。

于 2009-08-18T03:06:54.897 回答
0

试试System.IO.File.CreateText

于 2009-08-18T03:07:22.477 回答