2012-09-28 27 views
2

我是编程的新手。我创建一个XML文件使用Windows窗体和我的XML文件的名称是Windows窗体的名称字段文本框文本,它的工作正常,但如果文件已经可用我想给新的名字,但我能够给不同的名字只有一次。例如,如果'dog.xml'已经存在,那么我可以创建dog1.xml文件,然后当我创建任何新文件时,'dog1.xml'文件的内容被替换为新文件内容,但是我想创建' dog11.xml”或‘dog2.xml’文件如何在创建XML时为XML文件提供动态名称

private void btnSave_Click(object sender, EventArgs e) 
{ 
    path = rtxtName.Text + ".xml";//name of a xml file is name of WPF 'name' field 
    doc = new XmlDocument(); //Here i am creating the xmldocument object 
    doc.CreateTextNode(path); 
    if (!System.IO.File.Exists(path))//if there is no file exists then 
    { 
     CreateNewXMLDoc(); 
    } 
    else 
    { 
     path = rtxtName.Text + "1.xml"; //If the file is already avaliable   
     CreateNewXMLDoc(); 
    } 
} 

public void CreateNewXMLDoc() //This method is for creating my xml file 
{ 
    XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "UTF-8", "yes"); 
    XmlComment comment = doc.CreateComment("This is a generated XML file"); 
    doc.AppendChild(declaration); 
    doc.AppendChild(comment); 
    doc.AppendChild(doc.CreateElement("root")); 
} 
+3

你真的认为你的问题与XML相关? –

+1

您的代码在如何更改名称方面工作正常,您的问题在哪里? –

+2

据我所知,他希望它能够将其保存为something2.xml(如果something1.xml存在),或如果前两个存在(如果包含something.xml,则实际为3)则保存为something3.xml。 – Johan

回答

5
private void btnSave_Click(object sender, EventArgs e) 
    { 
     path = rtxtName.Text;//name of a xml file is name of WPF 'name' field 

     doc = new XmlDocument(); //Here i am creating the xmldocument object 

     string tempPath = path; 
     int counter = Properties.Settings.Default.Counter; 

     while(System.IO.File.Exists(tempPath)) 
     { 
      counter++; 
      tempPath = path + counter + ".xml"; 
     } 

     Properties.Settings.Default.Counter = counter; 
     Properties.Settings.Default.Save(); 
     doc.CreateTextNode(path); 
     CreateNewXMLDoc(); 
    } 

如果你想被看中,并按照微软的标准,然后将路径更改为这个 你可以建立在什么 - Copy.xml然后是 - Copy(1).xml等。

tempPath = path + "(" + counter + ")" + ".xml"; 

EDIT

更新,以保持计数器当应用程序重新启动

+1

它工作正常,但当我关闭我的应用程序,然后再次计数器值变为零。如何解决这个问题呢? –

+0

我不知道你需要保存计数器,但是当前一个被删除时会发生什么?即something1.xml不存在了,你是否希望它从最后一个继续(即something5.xml或再次保存为something1.xml? – Johan

+0

我已更新我的答案,坚持计数器。 – Johan