0

我正在尝试在同一个文件夹中创建 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();
}
4

3 回答 3

3

里面有什么FileNameTextBox.Text?它是否指定目录路径?

您的第二个文件是在没有说明哪个目录的情况下创建的。因此它将在当前目录中创建 - 不一定是指定的目录FileNameTextBox.Text

于 2012-08-16T09:40:47.483 回答
1

您没有为文件名指定绝对路径,因此您使用的是当前目录碰巧是什么,这是不可靠的。此外,您可能需要调用DirectoryInfo.Refresh()FileInfo.Refresh()以确保您看到最新的目录信息(无论文件是否存在)。

于 2012-08-16T09:47:54.513 回答
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();
}
于 2012-08-16T09:47:59.973 回答