创建另一个文件后,不会创建文件

时间:2012-08-16 09:32:13

标签: c# file

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

3 个答案:

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