我遇到的问题是每次我运行我的代码,来自" Titles.txt"被删除了,我不知道为什么。基本上,我运行程序,然后我用文本框写入文件,然后我关闭程序,检查它是否写入文件,它确实,我再次运行它并再次检查文件,是空的。我该怎么办?
public Form1()
{
InitializeComponent();
if(!File.Exists(mainFolder))
{
Directory.CreateDirectory(mainFolder);
Directory.CreateDirectory(tabTitlesFolder);
var file = File.Create(tabTitles);
file.Close();
}
}
答案 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 documentation,File.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,因此您在每次运行时都会重新创建该文件。