XDocument.Save到特定目录?

我第一次使用这个XML类,但找不到这条信息。

我正在做:

xmlDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); xmlDoc.Add(new XElement("Images")); xmlDoc .Save("C:\\Backup\\images.xml"); 

但是不起作用。 它只适用于我只使用文件名,如“images.xml”,但当然,文件会保存在执行路径中。

默认情况下,除非您在提升的权限下运行程序,否则您很可能无法保存到“C:\ Backup”。 默认情况下,您只能保存“用户”文件夹。

为我工作,必须是权限问题。 尝试其他目录或确保c:\ Backup存在

我发布这个是因为我遇到了类似的情况。

我期望XDocument.Save()会创建路径,如果它不存在。

(“Expect away !!”,我听说黑书粉丝说。)

似乎它没有。 鉴于其他Save方法的作用,这对我来说似乎有些遗漏。 或者,如果它不存在,它们至少可以选择创建路径。

无论如何,我同意这个问题有点模棱两可,但解决方案 – 如果它与路径不存在 – 是首先创建它:

 if (!Directory.Exists(Path.GetDirectoryName(myFilePath))) Directory.CreateDirectory(Path.GetDirectoryName(_myFilePath)); 

注意:在此示例中, MyFilePath是一个完整的路径,包括文件名和扩展名。 如果你只有路径,它将是:

 if (!Directory.Exists(myPath))) Directory.CreateDirectory(myPath); 

在我添加该行之后,一切都很好。