将文件夹浏览器对话框仅限于包含特定文件的文件夹

时间:2015-07-30 04:07:05

标签: c# winforms folderbrowserdialog

我有一个文件夹浏览器对话框(很简单)但我只希望它是“好的”#39;如果文件夹包含某个扩展名的文件。到目前为止我所拥有的:

FolderBrowserDialog pDlg = new FolderBrowserDialog();
if (pDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    if (Directory.GetFiles(pDlg.SelectedPath, "*.ext").Length > 0)
    {
        SrcDir.Text = pDlg.SelectedPath;
    }
    else
    {
        DBox.Items.Insert(0, "Not a suitable folder");
    }
}

如果所选文件夹不包含任何正确类型的文件(* .ext),则可以限制文本框SrcDir的填充。如果我可以禁用' ok'如果GetFiles(..).Length == 0,则在对话框中选择文件夹时按钮,因此无法选择不合适的文件夹;因为你不能看到' FolderBrowserDialog中的文件很难让用户知道它是否是正确的文件夹,因此通过更改OK按钮的enabled状态会向用户指示是否文件夹是合适的。

我可以使用OpenFileDialog浏览目录中的一个文件,然后使用FileInfo.DirectoryName提取其所在的文件夹,但我处于压力而不是这样做(其他人认为它很邋。)。

我很确定这不能用标准FolderBrowserDialog来完成;是否有另一个内置的对话框类,我可以控制此行为,还是应该在自定义对话框窗体上创建一个带有DirectorySearcher或类似TreeView和.ShowDialog()的新表单?

0 个答案:

没有答案