【问题标题】:Microsoft.Win32.SaveFileDialog valid file name issueMicrosoft.Win32.SaveFileDialog 有效文件名问题
【发布时间】:2015-08-06 18:34:12
【问题描述】:

使用 C# 编写的 .NET 4.5 运行应用程序。当我调用 SaveFileDialog 时,我得到的文件名验证结果好坏参半。如果我输入一些常见的嫌疑人{}/|等我收到一个错误,指出文件名无效。这就是我所期望的。

但是,两个常见的嫌疑人尤其会引起问题。如果我输入问号 (?) 或星号 (*),那么当我点击保存时,什么也没有发生。没有关于无效字符的错误消息发出,对话框保持打开状态。我希望用户知道为什么什么都没发生,并告诉他们这些字符是无效的。我在网上找不到任何关于这是一个已知错误的信息。

有什么想法吗?我知道我可以将自己的事件添加到 FileOK,但它只会在构建后执行,所以这对我没有好处,因为 FileOK 事件永远不会触发。

【问题讨论】:

  • “它不是一个错误,它是一个特性”。我不确定问号,但星号是通配符,告诉对话框显示特定类型的文件,具体取决于星号旁边插入的内容。 例如: 如果您插入 *.jpg,对话框将显示所有带有 jpg 扩展名的文件。

标签: c# .net savefiledialog


【解决方案1】:

这是一项功能,自 Windows 3.1 起就已在 Windows 通用文件对话框中使用。它的作用是允许您使用文件名输入框以特殊方式过滤当前目录的文件列表。 Raymond Chen 早在 2010 年就在他的博客中讨论过:

如果您键入通配符,例如 ?或 * 进入通用文件对话框,该对话框将此解释为请求将文件列表过滤为与您指定的通配符匹配的文件。在此特定示例中,键入 ?.jpg 表示“显示所有带有 .jpg 扩展名的单字符文件”。从原始报告的描述中,我了解到客户的测试是在一个空目录中进行的(因此过滤器没有效果)。

我猜你也在一个空文件夹中测试过它,或者你会注意到在输入问号时文件列表被过滤了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多