【问题标题】:SaveAs Dialog with a period in the filename does not return extension文件名中带有句点的另存为对话框不返回扩展名
【发布时间】:2012-03-24 11:57:43
【问题描述】:

如何确保“另存为”对话框返回带有扩展名的文件名?

例如:

'测试'(.txt)返回'test.txt'

但是:

'Test 1.0' (.txt) 返回'Test 1.0'(应该是'Test 1.0.txt')

可能的解决方案:我可以手动检查末尾是否有“.txt”,但是如果有两种扩展类型(.txt、.doc),我怎么知道用户选择了哪一种?

谢谢!

【问题讨论】:

  • 你不应该让用户选择任意扩展名,你必须以不同的格式编写文件。
  • 如果有 .txt 和 .doc 的选项,并且对话框返回时不带扩展名,那么您不知道要使用两者中的哪一个。

标签: .net savefiledialog


【解决方案1】:

我相信您需要将 .SupportMultiDottedExtensions 设置为 True,如下所示:

Using tDialog As SaveFileDialog = New SaveFileDialog
With tDialog
        .Filter = "Text Files|*.txt"
        .SupportMultiDottedExtensions = True
        .ShowDialog()
        MsgBox(.FileName)
    End With
End Using

【讨论】:

  • 感谢您的回答。我已经尝试过了,但并没有解决问题。
  • 奇数。这个对我有用。运行我提供的示例中的代码,你会看到。
  • 奇怪的是它对你有用,而不是对我有用。在空白的 Visual Studio 2010 项目、VB 和 C# 中测试了您的示例,但都没有解决问题。
  • 您是否正确设置了 Filter 属性?你必须有一个正确构造的过滤器才能工作。
  • 感谢您的支持。我已将您的示例直接复制到一个新项目中,但它不起作用。我看到您可以取回过滤器,并使用它来检测使用的过滤器。另一种选择是使用名称中已包含扩展名的默认名称。它们是很好的解决方法,但不能解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-17
  • 2013-05-02
  • 1970-01-01
  • 2014-12-01
  • 2016-11-30
  • 2014-04-10
  • 2019-11-29
相关资源
最近更新 更多