繁体   English   中英

创建XML时如何为XML文件指定动态名称

[英]How to give a dynamic name for an XML file while creating XML

我是编程新手。 我正在使用Windows窗体创建一个XML文件,而我的XML文件的名称是Windows窗体的名称字段文本框文本,它的工作正常,但是如果该文件已经可用,我想给出新的名称,但我可以给出不同的名称只有一次。 例如,如果“ dog.xml”已经存在,那么我能够创建dog1.xml文件,那么每当我创建任何新文件时,“ dog1.xml”文件的内容都会被新文件内容替换,但我想创建“ dog11.xml”或“ dog2.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"));
}
    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();
    }

如果您希望自己喜欢并遵循Microsoft的标准,则可以更改此路径,您可以构建以下内容-Copy.xml,然后构建某些内容-Copy(1).xml等。

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

编辑

更新以在应用程序重新启动时保留计数器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM