行开始在C#上删除文件

时间:2016-06-27 19:34:15

标签: c# file lines

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

    public Form1()
    {
        InitializeComponent();

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

2 个答案:

答案 0 :(得分:2)

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

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

如果文件已存在see the documentationFile.Create也会覆盖该文件。

最后,实现IDisposable的类型应该包含在using块或try/finally块中,以确保代码释放它们,即使要抛出异常也是如此。 File.Create返回FileStream,这是一次性的,因此它应该被包装。

using(File.Create(tabTitles)){}

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

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

答案 1 :(得分:0)

File.Exists为目录返回false,因此您在每次运行时都会重新创建该文件。