【问题标题】:OpenFileDialog: opening directoriesOpenFileDialog:打开目录
【发布时间】:2011-07-18 17:51:56
【问题描述】:

我希望能够在对话框中选择目录(除了单个文件)。就像现在一样,当我在选择目录时单击“打开”时,它会下降到目录中,而我希望它返回目录的路径。

另外,我将如何阅读这样的路径?我没有看到任何可以返回完整路径的属性。

【问题讨论】:

    标签: c++ winforms openfiledialog


    【解决方案1】:

    简单的方法是改用 FolderBrowserDialog

    此对话框旨在允许用户选择文件夹。如果愿意,您还可以让用户直接从对话框中创建一个新文件夹。

    您不应该尝试允许用户从同一对话框中选择或者一个文件一个文件夹。我认为我从未在应用程序中看到过这种情况。考虑一下区分扩展目录以定位文件的用户和试图选择目录本身的用户是多么困难。这就是提供两个单独对话框的原因;选择最适合您的目的。


    就读取OpenFileDialog 中所选文件的完整路径而言,您想要的属性(有点令人困惑)称为FileName。文档解释说:

    文件名包括文件路径和扩展名。如果没有选择文件,则此方法返回一个空字符串 ("")。

    或者,如果您允许多选,您可能希望改用 FileNames property

    【讨论】:

    • 但我希望能够同时选择单个文件和文件夹。抱歉,忘记了。
    • @Igor:这是在更新中添加的。请刷新页面查看。
    • 这是最简单的,但不是最好的。 .NET 内置的 FolderBrowserDialog 不会自动映射到 Windows Vista 和 Windows 7 中引入的新目录选择对话框,这是使用它的最大缺点。我个人使用这个包装器,www.ookii.org/software/dialogs/
    • 我需要制作一个对话,尽管听起来很糟糕。虽然它并没有真正让我吃惊;我相信我在程序中看到过这样的行为。
    • @Igor:它怎么知道区别?如何在不选择文件夹的情况下展开文件夹?您如何选择一个文件夹而不简单地展开它?我无法想象这会如何运作。如果你愿意,你可以让用户选择一个任意文件,然后忽略返回的文件名。但这似乎特别不直观。
    猜你喜欢
    • 2012-06-24
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多