如何使用 SaveFileDialog 将字符串生成器的内容保存到文本文件?

Posted

技术标签:

【中文标题】如何使用 SaveFileDialog 将字符串生成器的内容保存到文本文件?【英文标题】:How to save an stringbuilder's content to text file using SaveFileDialog? 【发布时间】:2008-10-23 18:21:02 【问题描述】:

这是一个 winforms 应用程序。

在 Windows 中,我希望用户单击和按钮,然后弹出窗口应该让用户选择他们要保存文件的路径。

【问题讨论】:

【参考方案1】:

你想要WriteAllText 函数。

using (SaveFileDialog dialog = new SaveFileDialog()) 
    if (dialog.ShowDialog(this) == DialogResult.OK) 
        File.WriteAllText(dialog.FileName, yourStringBuilder.ToString());
    

【讨论】:

【参考方案2】:

别想了……

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2 
public partial class Form1 : Form 

    StringBuilder sb = new StringBuilder();

    public Form1() 
        InitializeComponent();

        sb.Append("This is going ");
        sb.Append("to be saved to a text file");
    

    private void button1_Click(object sender, EventArgs e) 
        using (SaveFileDialog dlg = new SaveFileDialog()) 
            if (dlg.ShowDialog() == DialogResult.OK) 
                string fileName = dlg.FileName;
                SaveToFile(fileName);
            
        
    

    private void SaveToFile(string fileName) 
        System.IO.TextWriter w = new System.IO.StreamWriter(fileName);
        w.Write(sb.ToString());
        w.Flush();
        w.Close();
    

【讨论】:

既然 StreamWriters 有一个内置函数可以帮你搞定,为什么还要搞砸呢? 嘿,很酷...我还没有看到这个功能。我今天学到了新东西:D【参考方案3】:

StringBuilder.ToString() 会给你字符串。

This link 将向您展示如何将文本写入文件。

This link 将向您展示如何调用 SaveFileDialog 并将流传递给它以进行保存。

希望对您有所帮助。

【讨论】:

【参考方案4】:

StringBuilder.ToString()可以在创建文件后传递给TextStream.Write()方法。

使用SaveFileDialog class,您可以让用户以标准方式选择路径和文件名。详细例子在doc。

【讨论】:

OpenFileDialog 默认要求文件存在。 SaveFileDialog 类是要走的路。 要保存的文件内容在stringbuilder中

以上是关于如何使用 SaveFileDialog 将字符串生成器的内容保存到文本文件?的主要内容,如果未能解决你的问题,请参考以下文章

不使用 SaveFileDialog 保存文件

saveFileDialog:文件名无效

如何使用 SaveFileDialog 的过滤器

如何从 SaveFileDialog.FileName 仅获取目录名称

c# savefiledialog 锁定到特定目录? [复制]

如何使用 saveFileDialog 在 C# 中保存图像? [复制]