如何仅使CommonOpenFileDialog选择文件夹,但仍显示文件?

我使用Microsoft的CommonOpenFileDialog来允许用户选择文件夹,但是当对话框出现时没有文件可见。 当IsFolderPicker设置为true时,是否可以显示文件和文件夹?

我目前的代码看起来像这样

 var dialog = new CommonOpenFileDialog(); dialog.IsFolderPicker = true; if (dialog.ShowDialog() == CommonFileDialogResult.Ok) { SelectedFolderPath = dialog.FileName; } 

在我的头顶,这就是我做到的

  var dialog = new CommonOpenFileDialog { EnsurePathExists = true, EnsureFileExists = false, AllowNonFileSystemItems = false, DefaultFileName = "Select Folder", Title = "Select The Folder To Process" }; dialog.SetOpenButtonText("Select Folder"); if (dialog.ShowDialog() == CommonFileDialogResult.Ok) dirToProcess = Directory.Exists(dialog.FileName) ? dialog.FileName : Path.GetDirectoryName(dialog.FileName); 

编辑:圣2年前蝙蝠侠!


好像很少有变化,下面的片段似乎可以完成这项工作

 var openFolder = new CommonOpenFileDialog(); openFolder.AllowNonFileSystemItems = true; openFolder.Multiselect = true; openFolder.IsFolderPicker = true; openFolder.Title = "Select folders with jpg files"; if (openFolder.ShowDialog() != CommonFileDialogResult.Ok) { MessageBox.Show("No Folder selected"); return; } // get all the directories in selected dirctory var dirs = openFolder.FileNames.ToArray(); 

不太确定是否可以以标准方式进行,但即使考虑到是,也要考虑UI 。 在一个地方看到当代文件夹和文件,但只能选择文件夹,在我看来并不是一个好的用户界面。 恕我直言,更好,更“自然”的方式,让一个控件填充文件夹,另一个( 显然只读 )填充只有必须加载的文件。

希望这可以帮助。

如果您希望用户仅选择文件夹,您是否考虑过使用FolderBrowserDialog?