我有一个FolderBrowserDialog,显示如下所示的代码.但是,它会一直打开"计算机",即选中的文件夹树的根目录.如何在所选文件夹上打开它?
var folderBrowser = new FolderBrowserDialog(); folderBrowser.Description = "Select Chase 6 Installation Folder"; folderBrowser.RootFolder = Environment.SpecialFolder.MyComputer; folderBrowser.ShowNewFolderButton = false; if (Directory.Exists(Properties.Settings.Default.defaultChasePath)) { string x = Properties.Settings.Default.defaultChasePath; folderBrowser.SelectedPath = x; } if (folderBrowser.ShowDialog(this) == DialogResult.OK) { chasePathtext.Text = folderBrowser.SelectedPath; }
Preston McCo.. 20
如果将RootFolder设置为Environment.SpecialFolder.Desktop,则只要路径有效,它就会打开到SelectedFolder.
当您将RootFolder设置为Environment.SpecialFolder.MyComputer时,第一次打开对话框时,它将始终从MyComputer开始,而不是从SelectedFolder路径开始.
如果进行了有效选择,则将在先前选择的路径中打开相同FolderBrowserDialog实例的后续使用.
如果将RootFolder设置为Environment.SpecialFolder.Desktop,则只要路径有效,它就会打开到SelectedFolder.
当您将RootFolder设置为Environment.SpecialFolder.MyComputer时,第一次打开对话框时,它将始终从MyComputer开始,而不是从SelectedFolder路径开始.
如果进行了有效选择,则将在先前选择的路径中打开相同FolderBrowserDialog实例的后续使用.
从Microsoft帮助FolderBrowserDialog类:
通常,在创建新的FolderBrowserDialog之后,将RootFolder设置为开始浏览的位置.(可选)您可以将SelectedPath设置为最初将被选中的RootFolder子文件夹的绝对路径.
您是否可能将SelectedPath设置为不等于RootFolder(即我的电脑)子文件夹的位置?这可能会导致它作为呈现的位置潜回到RootFolder.
将rootfolder设置为
Environment.SpecialFolder.Desktop
它应该按你的意愿工作.
这是实际设置初始选定文件夹的唯一方法.你认为使用
Environment.SpecialFolder.MyComputer
会工作,但事实并非如此.
这对我有用:
FolderBrowserDialog diag = new FolderBrowserDialog(); diag.Description = "Select a folder in which to save your workspace..."; diag.SelectedPath = Application.StartupPath; if (DialogResult.OK == diag.ShowDialog()) { // do something here... }
设置SelectedPath属性,而不是RootFolder.
编辑:这是一个截图,显示Application.StartupPath位于"C:\ LocalDocuments\Visual Studio 2010\Projects\FolderBrowserDialogTest\FolderBrowserDialogTest\bin\Debug"中,绝对不在 Desktop目录中.