2012-08-16 29 views
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(); 
} 
+0

嘗試使用,而不是其他的if else。這可能是錯誤從 – 2012-08-16 09:34:06

+3

創建的地方,並嘗試一次構建文件名,並將它們放入字符串變量中,然後在所有文件函數中使用它們。 – 2012-08-16 09:35:47

+1

@ColeJohnson:如果他這樣做,如果文件首先存在,文件將不會再次生成。他這樣做的方式是,如果文件存在,文件將被移至備份文件。如果成功,則創建該文件。 – 2012-08-16 09:35:57

回答

3

什麼在FileNameTextBox.Text?它是否指定目錄路徑?

你的第二個文件是在不說哪個目錄的情況下創建的。所以它會在當前目錄中創建 - 這不一定是由FileNameTextBox.Text指定的目錄

+0

大聲笑啊,這是它!這就解釋了爲什麼沒有錯誤加劇。完全忘了指定路徑嘿嘿。感謝名單! – Dante1986 2012-08-16 10:07:29

1

您沒有爲文件名指定絕對路徑,因此您使用的是當前目錄恰好是,而不是可靠。此外,您可能需要撥打DirectoryInfo.Refresh()FileInfo.Refresh()以確保您看到最新的目錄信息(文件是否存在)。

0

評論只是使最後一個if case執行第一行..最後一個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(); 
}