SaveFileDialog 文件保存对话框

SaveFileDialog 文件保存对话框

SaveFileDialog 是一个用来保存文件的对话框控件。通常用于文件导出场景,比如动态生成文档、导出报表时,让用户选择保存路径和文件名。

基本使用

以导出 txt 文件为例,完全可以在后台代码中创建和使用该对话框:

private void button1_Click(object sender, EventArgs e)
{
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.Filter = "文本文件(*.txt)|*.txt|所有文件|*.*"; // 设置文件类型过滤
    sfd.FileName = "保存";                              // 设置默认文件名
    sfd.DefaultExt = "txt";                            // 设置默认扩展名
    sfd.AddExtension = true;                           // 自动添加扩展名

    if (sfd.ShowDialog() == DialogResult.OK)
    {
        MessageBox.Show("保存路径:" + sfd.FileName + "\r\n");
        using (StreamWriter sw = new StreamWriter(sfd.FileName))
        {
            sw.WriteLine("XXXX是个好学校");
        }
    }
    MessageBox.Show("ok");
}Code language: JavaScript (javascript)

常用属性

属性说明
FileName获取或设置选中文件的完整路径
Filter文件类型过滤器,格式同 OpenFileDialog
FilterIndex当前选中的过滤器索引(从 1 开始)
InitialDirectory初始打开的目录
Title对话框标题
DefaultExt默认文件扩展名
AddExtension是否自动在用户输入的文件名后添加扩展名
CheckFileExists是否检查文件已存在(保存对话框通常设为 false)
CheckPathExists是否检查路径存在
CreatePrompt文件不存在时是否提示创建
OverwritePrompt文件已存在时是否提示覆盖确认
RestoreDirectory关闭后是否恢复当前目录
this.saveFileDialog1.Title = "请选择保存位置";
this.saveFileDialog1.InitialDirectory = @"C:\Documents";
this.saveFileDialog1.Filter = "文本文件|*.txt|Word文档|*.doc|所有文件|*.*";
this.saveFileDialog1.FilterIndex = 1;
this.saveFileDialog1.DefaultExt = "txt";
this.saveFileDialog1.AddExtension = true;
this.saveFileDialog1.OverwritePrompt = true;   // 文件存在时提示覆盖
this.saveFileDialog1.CheckPathExists = true;Code language: JavaScript (javascript)

常用方法

方法说明
ShowDialog()显示对话框,返回 DialogResult
OpenFile()以写入模式打开选中的文件,返回 Stream
Reset()重置所有属性到默认值
// 使用 OpenFile 直接获取文件流(推荐,自动处理路径)
private void button2_Click(object sender, EventArgs e)
{
    if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        using (Stream stream = this.saveFileDialog1.OpenFile())
        using (StreamWriter sw = new StreamWriter(stream))
        {
            sw.WriteLine("北盟是个好学校");
        }
    }
}Code language: JavaScript (javascript)

与 OpenFileDialog 的对比

对比项SaveFileDialogOpenFileDialog
主要用途保存/导出文件打开/选择已有文件
默认按钮文本“保存”“打开”
CheckFileExists默认 false默认 true
OverwritePrompt默认 true无此属性
OpenFile()以写入模式打开以只读模式打开

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注