C#:检查文件是否存在 - 进程无法访问文件错误
本文关键字:文件 访问 错误 进程 存在 检查 是否 | 更新日期: 2023-09-27 18:32:36
我现在正在学习 c#,我想检查文件是否存在。如果存在,则应加载并写入 xml 文件。如果它不存在,它应该创建它,然后它应该加载并写入 xml 文件。但是如果我单击我的按钮,会出现一个错误:
"进程无法访问该文件,因为它正被另一个进程使用。"
在这里你可以看到我的代码:
private void btnSave_Click(object sender, EventArgs e)
{
XElement xmlnode = new XElement("Namespace",
new XElement("RandomText1", textBox1.Text),
new XElement("RandomText2", textBox2.Text),
new XElement("RandomText3", textBox3.Text)
);
XElement xmlFile;
try
{
xmlFile = XElement.Load("testsave.xml");
xmlFile.Add(xmlnode);
}
catch (XmlException)
{
xmlFile = new XElement("Test", xmlnode);
}
xmlFile.Save("testsave.xml");
DataSet ds = new DataSet();
ds.ReadXml("testsave.xml");
DataTable dt = ds.Tables[0];
dataGridView1.DataSource = dt;
}
private void Form1_Load(object sender, EventArgs e)
{
if (!File.Exists("testsave.xml"))
{
File.Create("testsave.xml");
}
}
问题是File.Create
创建一个文件并返回打开FileStream
。因此,当您稍后尝试访问它时,会出现异常。您必须先关闭它,然后再使用它。
试试这个
using (File.Create("testsave.xml"))
{ }
或
File.Create("testsave.xml").Close();
如果在另一个程序中打开该文件,则会发生此错误。如果您在其他程序中打开了它,请将其关闭并再次运行您的应用程序