C# 无法加载动态创建的XML文件。不带编码标记的Xml如何在创建Xml文件后添加根编码标记

C# 无法加载动态创建的XML文件。不带编码标记的Xml如何在创建Xml文件后添加根编码标记,c#,xml,C#,Xml,你可以等一会儿再试一次。例如,类似这样的事情: if (!File.Exists(locationFile)) { string file = @"mypathtoxml"; XmlDocument objXmlDoc = new XmlDocument(); doc.Load(file); //- i get error here in loading my XML file which is created dynamically. //process ca

你可以等一会儿再试一次。例如,类似这样的事情:

if (!File.Exists(locationFile))
{
    string file = @"mypathtoxml";
    XmlDocument objXmlDoc = new XmlDocument();
    doc.Load(file); //- i get error here in loading my XML file which is created dynamically. 
    //process cannot access my path(my xml file Location) because it is being used by another process
}
为了在某个时候终止,您可以添加一个计数器,然后只尝试10次左右。

试试这个

var finished = false;
while (!finished)
{
  try
  {
    if (!File.Exists(locationFile))
    {
      string file = @"mypathtoxml";
      XmlDocument objXmlDoc = new XmlDocument();
      doc.Load(file); 
      finished = true;
    }
  }
  catch (IOException)
  {
    // the file is unavailable because it is:
    // - still being written to
    // - being processed by another thread
    // so we just wait a second
    Thread.Sleep(1000);
  }
}
string file=”“+file.ReadAllText(文件名)+”;
XmlDocument objXmlDoc=新的XmlDocument();
objXmlDoc.LoadXml(文件);​​

有人请帮忙。提前感谢您的帮助从外观上看,您有两个不同的问题,因此您应该问两个不同的问题。至于“被另一个进程使用”错误,您是如何创建该文件的?你关好了吗?您如何知道它何时完成创建?您的两个问题都与xml的创建有关,而不是与xml的读取有关-您应该显示代码.Problem solved File.Create(folderPath+“/”+newXml.Close();创建文件后,需要关闭文件。添加标记,然后我可以将数据保存到其中。是的,Matthew watson,我有两个查询。我正在创建一个文件,但没有关闭它,所以这是我的错误。因为当我们在VisualStudio中创建文件时,它会动态/手动打开一个文件。所以要执行操作,我需要正确关闭它。然后继续我的保存或加载XML文件的功能。它解决了我的错误:File.Create(folderPath+“/”+newXml.Close();您已将文件路径更改为某个固定的xml字符串。这对读取正在使用的文件有何帮助?我修改了代码,将xml定义和根标记添加到现有文件中。关于创建xml(动态)而不编码标记。它的首要任务是添加标记,然后将其保存到文件中。最后加载XML以执行操作。因为在加载文件(doc.Load(file);)时,不确定实际是哪种类型是错误的。
            string file = "<?xml version=\"1.0\"?><mypathtoxml>" + File.ReadAllText(FILENAME) +  "</mypathtoxml>";
            XmlDocument objXmlDoc = new XmlDocument();
            objXmlDoc.LoadXml(file); ​​