如何将 XDocument 的 XML 内容另存为.xml文件

本文关键字:另存为 xml 文件 XML XDocument | 更新日期: 2023-09-27 18:30:16

我有一个XDocument类,其中已经制作了XML内容。我基本上想打开一个SaveFileDialog,让用户选择一个文件夹(而不是文件),将内容保存为.xml文件。

我这样做有些困难:

a) 如何使用保存文件对话框提示用户选择一个文件夹?我只能使用它来让用户选择一个文件。

b) 如何从保存文件对话框中提取所选路径?

c) 获得路径后,如何保存 XDocument 的内容?有一个名为"保存"的方法需要流 - 如何使用路径构建流?(这可能是一个基本问题,我几乎没有IO经验)

如何将 XDocument 的 XML 内容另存为.xml文件

a)

您不想选择文件夹,而是选择文件名(保存*文件*对话框)

b) 保存文件对话框.文件名

c) 查看不同的重载:你有 XDocument.Save(字符串文件名)。不需要流,你可以有一个文件名(哦,你在保存文件对话框中得到了它)

编辑:你的意思是用户不能更改文件名?然后

a) 文件夹浏览器对话框

b) 文件夹浏览器对话框.选定路径

c) XDocument.Save(FolderBrowserDialog.SelectedPath + "/" + THENAMEOFYOURFILETHATUSERCANTCHANGE)

编辑2:Path.Combing在c中更优雅)。

A & B(重复问题的示例代码):

  • "C# 保存"对话框

C(保存XDocument的最小代码):

XDocument document = new XDocument();
document.Add(new XElement("my_root"));
// Save(): there are 6 overloads; the 2nd one takes a path
document.Save(filePathFromSaveDialog); 

确保将 SaveFileDialog 添加到窗体并签名到 FileOk 事件(可以通过 SaveFileDialog 的属性完成),然后以下代码应该适用于您的:

private void button1_Click(object sender, EventArgs e)
{
    // When user clicks button, show the dialog.
    saveFileDialog1.ShowDialog();
}
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    // Get file name.
    string name = saveFileDialog1.FileName;
    // Write to the file name selected.
    xDocumentYouHave.Save(name);
}