行组成一个文件,在c#开始时删除

本文关键字:文件 删除 开始时 一个 | 更新日期: 2023-09-27 17:51:20

我遇到的问题是,每次我运行我的代码,行从"标题。txt"被删除,我不知道为什么。基本上,我运行程序,然后我用一个文本框写入文件,然后我关闭程序,检查它是否写入文件,它确实写入了,我再次运行它,再次检查文件,结果是空的。我能做什么?

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

行组成一个文件,在c#开始时删除

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

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将覆盖该文件,请参阅文档。

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

using(File.Create(tabTitles)){}

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

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

文件。Exists对目录返回false,因此每次运行时都要重新创建该文件。