我正在使用Microsoft的CommonOpenFileDialog来允许用户选择文件夹,但是当对话框出现时,没有文件可见。当IsFolderPicker
设置为true时,是否可以显示文件和文件夹?
我目前的代码如下所示
var dialog = new CommonOpenFileDialog();
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
SelectedFolderPath = dialog.FileName;
}
答案 0 :(得分:9)
脱离我的头顶,这就是我做的事情
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();
答案 1 :(得分:1)
不确定是否可以以标准方式进行,但即使考虑到是,请考虑 UI 。在一个地方看到当代文件夹和文件,但能够选择仅文件夹,在我看来并不是一个好的UI。恕我直言,更好,更“自然”的方式,让一个控件填充文件夹,另一个(显然只读)只填充必须加载的文件。
希望这有帮助。
答案 2 :(得分:0)
如果您希望用户仅选择文件夹,您是否考虑过使用FolderBrowserDialog?