C# 如何使用“打开文件”对话框选择文件夹

C# 如何使用“打开文件”对话框选择文件夹,c#,openfiledialog,C#,Openfiledialog,可能重复: 我使用的是C语言,我想完全避免使用SelectFolderDialog来选择文件夹。相反,我想使用更接近OpenFileDialog的东西来选择一个文件夹 对于一个更直观的示例,我正在寻找与以下内容不完全相同的内容: 有什么想法吗?Windows Vista的文件夹选择对话框与您想要的非常相似。不幸的是,.NET的FolderBrowser对话框显示了旧的类似于Windows XP的对话框,这是您想要避免的 要访问此“视景样式”对话框,您可以 使用一些第三方.NET库,例如: 使用

可能重复:

我使用的是C语言,我想完全避免使用SelectFolderDialog来选择文件夹。相反,我想使用更接近OpenFileDialog的东西来选择一个文件夹

对于一个更直观的示例,我正在寻找与以下内容不完全相同的内容:


有什么想法吗?

Windows Vista的文件夹选择对话框与您想要的非常相似。不幸的是,.NET的FolderBrowser对话框显示了旧的类似于Windows XP的对话框,这是您想要避免的

要访问此“视景样式”对话框,您可以

使用一些第三方.NET库,例如:

使用相关的Windows API调用或

使用:

请注意,此对话框在早于Windows Vista的操作系统上不可用,因此请确保首先选中CommonFileDialog.IsPlatformSupported


3.5中的Winforms和4.0中的WPF都已更新为使用Vista对话框。@HansPassant:否。我刚刚尝试过:new FolderBrowserDialog.ShowDialog;在.NET 4.0中,WinForms应用程序显示相同的旧而难看的FolderBrowserDialog。请检查FileDialog.AutoUpgradeEnabled属性。@HansPassant:FolderBrowserDialog不是从FileDialog派生的。因此,它缺少这个属性和功能。我希望我可以发布一个例子,但问题已经解决了。在我看来,这与上面列出的可能重复的问题完全不同。Vista IFileDialog界面公开了此选项。可在Windows API代码包、CommonOpenFileDialog类、IsFolderPicker属性中找到。@HansPassant:如果您将其作为答案添加,我将对此进行投票。@HansPassant:您能举个例子吗?我同意Heinzi的观点。@Demasterpl:看看哪个链接可以找到有效的解决方案非常感谢你问我到底在找什么!:
  using Microsoft.WindowsAPICodePack.Dialogs;

  ...

  var dialog = new CommonOpenFileDialog(); 
  dialog.IsFolderPicker = true;
  CommonFileDialogResult result = dialog.ShowDialog();