【问题标题】:SaveFileDialog should I use the FilterIndex property or the extension of the FileName property?SaveFileDialog 我应该使用 FilterIndex 属性还是 FileName 属性的扩展名?
【发布时间】:2019-04-18 11:40:19
【问题描述】:

前几天我有以下问题SaveFileDialog AddExtension doesn't work as expected。现在我想到了一个后续问题。

我应该使用FilterIndex 属性还是SaveFileDialogFileName 属性的扩展名来决定我要以哪种文件格式存储数据?

我有以下 C# 测试代码:

var dialog = new SaveFileDialog();
dialog.AddExtension = true;
dialog.DefaultExt = "txt";
dialog.Filter = "Text files (*.txt)|*.txt|XML files (*.xml)|*.xml";
dialog.OverwritePrompt = true;
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    string extension = System.IO.Path.GetExtension(dialog.FileName);
    int filterIndex = dialog.FilterIndex;
}

文档引用:

你也可以在显示文件后使用FilterIndex的值 根据过滤器执行特殊文件操作的对话框 选择。

如果我使用 FilterIndex 属性,它将保存例如带有 XML 扩展名的文本文档(对话框File name = test7.xml,对话框Save as type = *.txt)。

如果我使用FileName 的扩展名,那么对话框的Save as type 将被忽略。

【问题讨论】:

    标签: c# .net savefiledialog


    【解决方案1】:

    文件名和格式不同。

    FilterIndex 属性可以指定文件的格式,但 FileName 应该指定他们希望文件如何命名。这些可能不同。

    但要小心。如果您的格式列表包含“All Files (*.*)”选项,则您会遇到默认格式的问题。这种格式对用户来说是否显而易见?

    简而言之,我对您的建议是使用下拉列表来选择格式,而使用 FileName 就可以了。让用户保存扩展名为 .TXT 的 CSV 文件。

    【讨论】:

    • 我同意你的看法。 MS Word 为这些情况添加了双重扩展名(请参阅我的其他问题)。另一方面,MS Wordpad 使用文件名的扩展名。顺便说一句:我的 SaveFileDialog 没有所有文件选项的计划。
    猜你喜欢
    • 2022-08-16
    • 2013-06-19
    • 2017-10-09
    • 2012-05-06
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    相关资源
    最近更新 更多