行形成在启动 C# 时删除的文件

Lines form a file deleting on start C#

我遇到的问题是,每次我 运行 我的代码时,"Titles.txt" 中的行都会被删除,我不知道为什么。基本上,我 运行 程序,然后我用文本框写入文件,然后我关闭程序,检查它是否写入文件并且它确实写入了,我再次 运行 它并检查文件又是空的。我能做什么?

    public Form1()
    {
        InitializeComponent();

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

您需要检查文件,而不是文件夹。

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

如果文件已经存在,File.Create也会覆盖该文件,see the documentation

最后,实现 IDisposable 的类型应该包装在 using 块或 try/finally 块中,以确保即使抛出异常也能被代码释放。 File.Create returns FileStream 是一次性的所以应该包起来。

using(File.Create(tabTitles)){}

由于您没有使用结果,因此不需要将其分配给任何东西,但如果您想写入文件,则可以。

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

File.Exists returns false 对于目录,因此您在每个 运行 上重新创建文件。