设置自定义FolderBrowserDialog.RootFolder

设置自定义FolderBrowserDialog.RootFolder

问题描述:

我的应用程序想为客户提供一系列选项集。每套包含60个选项,主题变体。这些集合存储在一个文件夹中。 Set1 set2等。我想使用文件夹浏览器来选择一组,但我不希望用户看到整个驱动器。我想将根文件夹设置为父集。我尝试过使用RootFolder,但是我发现这是行不通的。我也尝试使用fileopenDialog,但我无法选择一个文件夹。有第三种选择吗?设置自定义FolderBrowserDialog.RootFolder

+0

使用'System.IO.Directory.GetFiles()'和'一个ListBox'? – dummy

+1

您可以通过让用户命名集合来隐藏用户的所有实现细节。然后当他们选择一个名字时 - 你的代码为它们加载相关的集合。不需要**他们**来记住“set01”的含义或者他们存储的位置。 – Plutonix

RootFolder排序作品当与SelectedPath

Using fbd As New FolderBrowserDialog 
     fbd.RootFolder = Environment.SpecialFolder.MyComputer 
     fbd.SelectedPath = "H:\temp\scans" 
     If fbd.ShowDialog = Windows.Forms.DialogResult.OK Then 
      MsgBox(fbd.SelectedPath) 
     End If 
    End Using 

这至少显示所需的文件夹相结合 - 所有其它路径仍然可用,如果用户向上滚动。


这是我发现使用标准的OpenFileDialog在网上搜索最接近:

Using obj As New OpenFileDialog 
     obj.Filter = "foldersOnly|*.none" 
     obj.CheckFileExists = False 
     obj.CheckPathExists = False 
     obj.InitialDirectory = "C:\temp" 
     obj.CustomPlaces.Add("H:\OIS") ' add custom location 
     obj.CustomPlaces.Add("H:\Permits") ' add custom location 
     obj.Title = "Select folder - click Open to return opened folder name" 
     obj.FileName = "OpenFldrPath" 
     If obj.ShowDialog = Windows.Forms.DialogResult.OK Then 
      MsgBox(IO.Directory.GetParent(obj.FileName).FullName) 
     End If 
    End Using 

编辑CustomPlaces.Add()为您的环境 - 这些文件夹显示在右上方的导航面板。

`obj.FileName =“OpenFldrPath””是有问题 - 在什么可以例如被用来限制一个短语失败。

注意到关于开放两次点击返回文件路径。