Microsoft.Win32.SaveFileDialog有效的文件名问题

时间:2015-08-06 18:34:12

标签: c# .net savefiledialog

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

然而,两个常见的嫌疑人特别引起了一个问题。如果我输入问号(?)或星号(*),那么当我点击保存时没有任何反应。没有关于无效字符的错误消息,并且对话框保持打开状态。我希望用户知道为什么没有发生,并告诉他们角色无效。我在网上找不到任何关于这是一个已知错误的内容。

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

1 个答案:

答案 0 :(得分:4)

这是一项自Windows 3.1以来一直使用Windows公共文件对话框的功能。它的作用是允许您使用文件名输入框以临时方式过滤当前目录的文件列表。 see this answer早在2010年就在他的博客中对此进行了讨论:

  

如果你输入一个通配符?或*进入一个公共文件对话框,该对话框将其解释为请求将文件列表过滤到与您指定的通配符匹配的文件。在这个特定的例子中,输入?.jpg表示"显示所有带有.jpg扩展名的单字符文件。"根据原始报告中的描述,我收集到客户的测试发生在一个空目录中(因此过滤器没有效果)。

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