我正在尝试在同一文件夹中创建2个XML文件。 由于某种原因,它确实创建了第一个,但没有创建第二个。
当尝试创建第二个文件时,是否还会创建第一个,因此后者失败了?
我的代码没有任何错误:
if (File.Exists(FileNameTextBox.Text + ".AA.xml"))
{
MessageBox.Show("Already exists. renaming to *.old" + Environment.NewLine +
"if there is already an *.old file, this will be deleted.");
if (File.Exists(FileNameTextBox.Text + ".AA.xml.old"))
{
File.Delete(FileNameTextBox.Text + ".AA.xml.old");
}
File.Move(FileNameTextBox.Text + ".AA.xml", FileNameTextBox.Text + ".AA.xml.old");
}
if (!File.Exists(FileNameTextBox.Text + ".AA.xml"))
{
XmlTextWriter textWritter = new XmlTextWriter(FileNameTextBox.Text + ".AA.xml", null);
textWritter.WriteStartDocument();
textWritter.WriteStartElement("Data");
textWritter.WriteEndElement();
textWritter.Close();
}
if (File.Exists("BB.xml"))
{
if (File.Exists("BB.xml.old"))
{
File.Delete("BB.xml.old");
}
File.Move("BB.xml", "BB.xml.old");
}
if (!File.Exists("BB.xml"))
{
XmlTextWriter textWritterPC3 = new XmlTextWriter("BB.xml", null);
textWritterPC3.WriteStartDocument();
textWritterPC3.WriteStartElement("Data");
textWritterPC3.WriteEndElement();
textWritterPC3.Close();
}
答案 0 :(得分:3)
FileNameTextBox.Text
是什么?它是否指定了目录路径?
创建第二个文件时没有说明哪个目录。因此它将在当前目录中创建 - 该目录不一定是FileNameTextBox.Text
答案 1 :(得分:1)
您没有为文件名指定绝对路径,因此您正在使用当前目录,这是不可靠的。此外,您可能需要致电DirectoryInfo.Refresh()或FileInfo.Refresh()以确保您看到最新的目录信息(文件是否存在)。
答案 2 :(得分:0)
注释只是使最后一个if情况执行第一行..最后一个if应该是这样的。我不知道它是否仅在你的例子中。 你的例子
if (!File.Exists("BB.xml")) // {
XmlTextWriter textWritterPC3 = new XmlTextWriter("BB.xml", null);
应该是
if (!File.Exists("BB.xml")) //
{
XmlTextWriter textWritterPC3 = new XmlTextWriter("BB.xml", null);
textWritterPC3.WriteStartDocument();
textWritterPC3.WriteStartElement("Data");
textWritterPC3.WriteEndElement();
textWritterPC3.Close();
}