如何将 XDocument 的 XML 内容另存为.xml文件
本文关键字:另存为 xml 文件 XML XDocument | 更新日期: 2023-09-27 18:30:16
我有一个XDocument类,其中已经制作了XML内容。我基本上想打开一个SaveFileDialog,让用户选择一个文件夹(而不是文件),将内容保存为.xml文件。
我这样做有些困难:
a) 如何使用保存文件对话框提示用户选择一个文件夹?我只能使用它来让用户选择一个文件。
b) 如何从保存文件对话框中提取所选路径?
c) 获得路径后,如何保存 XDocument 的内容?有一个名为"保存"的方法需要流 - 如何使用路径构建流?(这可能是一个基本问题,我几乎没有IO经验)
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);
}