【问题标题】:CommonOpenFileDialog to show files that can't be selected [duplicate]CommonOpenFileDialog 显示无法选择的文件[重复]
【发布时间】:2019-12-30 09:49:29
【问题描述】:

对于我正在编写的应用程序,用户必须选择一个文件夹,其中包含该应用程序使用的一些日志文件。为了更直观,我希望他们能够看到文件夹中的文件,但当然仍然只能选择文件夹。

所以我的问题是,我怎样才能让对话框只打开文件夹,但仍然显示其他文件。

我已经尝试过这个帖子的解决方案,

How can I make CommonOpenFileDialog select folders only, but still show files?

但是,它似乎不适用于 Windows10,至少不适用于我和我尝试过的其他 PC。

这是我目前必须打开的:

CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{ }

【问题讨论】:

  • 什么不起作用?
  • 如果我没记错的话,CommonOpenFileDialog 属于 Windows API Code Pack 包,它不再是 Microsoft 的官方版本(可能从未如此)。所以它可能会在未来的任何版本中停止工作。我建议不要依赖这些位。
  • @SteffenWinkler 使用链接解决方案,对话框仍然只选择文件夹但不显示其他文件。
  • @Steve 啊,我明白了。您是否会知道 C# 的替代方案?
  • 不,我不知道有任何替代方案可以满足您的要求。可能另一种方法是使用两种不同的控件。在一个显示文件夹及其结构,在另一个显示从第一个控件中选择的文件。抱歉,这不是快速解决方案或您想听到的内容。

标签: c# windows-10 openfiledialog


【解决方案1】:

我发现 Daniel Ballinger 对可能是您正在寻找的类似问题的评论:

How to use OpenFileDialog to select a folder?

总结是,您可以以一种骇人听闻的方式使用 OpenFileDialog 来选择文件和文件夹。因此,它将允许您的用户选择显示这些文件夹中文件的文件夹。

虽然它没有使用 CommonOpoenFileDialog,但结果与您的要求接近。

这对用户来说有点混乱,因为他们可能会不小心选择一个文件!

在此处查找 Select file or folder from the same dialog 由 Denis Stankovski 制作的包装解决方案。

【讨论】:

  • 顺便说一句,我知道最好将此添加为评论,因为我没有足够的声誉,所以我无法发表评论,所以我发布了答案,我认为它可能对你有所帮助!
猜你喜欢
  • 2011-12-29
  • 2021-04-19
  • 2012-09-04
  • 2011-07-09
  • 2014-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多