摘要
Windows 窗体是一种流行的 GUI 开发技术,其中最常用的组件之一是 FolderBrowserDialog。该组件允许用户浏览并选择文件夹,这在很多应用程序中都非常有用,特别是那些需要用户输入文件路径的应用程序。
FolderBrowserDialog 组件通常由两个主要部分组成:一个是选择文件夹的对话框,另一个是选择文件夹后执行的操作。当用户点击“浏览”按钮时,FolderBrowserDialog 将显示一个对话框,其中包含了当前计算机上的所有可用文件夹。用户可以从中选择一个文件夹,并且在选择后,可以执行各种操作,例如将文件移动到选定的文件夹中、复制文件、创建新文件夹等。
在开发中,通常使用 FolderBrowserDialog 来帮助用户浏览文件夹。用户可以在对话框中选择要访问的文件夹,而开发人员可以使用该选定的文件夹作为参数,以便执行相关操作。这种方法使得应用程序更加用户友好,并且能够提高应用程序的效率。
除了基本的文件夹浏览功能之外,FolderBrowserDialog 还提供了一些高级选项,例如搜索文件夹中的文件、排序文件夹中的文件、获取文件夹的完整路径等。这些选项使得开发人员能够更加灵活地控制应用程序的行为,从而满足用户的需求。
虽然 FolderBrowserDialog 组件在开发中非常有用,但它也存在一些限制。例如,它不能处理文件夹中的隐藏文件或者目录,也不能自定义对话框的样式或者功能。因此,在使用 FolderBrowserDialog 组件时,开发人员需要谨慎考虑这些限制,并根据具体的需求来选择是否使用该组件。
正文
FolderBrowserDialog 组件在运行时使用 ShowDialog 方法显示。 设置 RootFolder 属性,以确定将显示在对话框树状视图中的最顶层文件夹和任何子文件夹。 显示对话框后,可以使用 SelectedPath 属性获取所选文件夹的路径。
属性
| InitialDirectory | 获取或设置文件夹浏览器对话框显示的初始目录。 |
| RootFolder | 获取或设置从其开始浏览的根文件夹。 |
| SelectedPath | 获取或设置用户选定的路径。 |
| ShowNewFolderButton | 获取或设置一个值,该值指示“新建文件夹”按钮是否显示在文件夹浏览对话框中。 |
方法
| Reset() | 将属性重置为其默认值。 |
| RunDialog(IntPtr) | 在派生类中被重写时,指定通用对话框。 |
| ShowDialog() | 用默认的所有者运行通用对话框。 |
| ShowDialog(IWin32Window) | 运行具有指定所有者的通用对话框。 |
SpecialFolder
Environment.GetFolderPath(Environment.SpecialFolder.Personal)
| AdminTools | 48 | 用于存储各个用户的管理工具的文件系统目录。 Microsoft Management Console (MMC) 会将自定义的控制台保存在此目录中,并且此目录将随用户一起漫游。 |
| ApplicationData | 26 | 用作当前漫游用户的应用程序特定数据的公共储存库的目录。 漫游用户在网络上的多台计算机上工作。 漫游用户的配置文件保留在网络服务器上,并在用户登录时加载到系统中。 |
| CDBurning | 59 | 充当等待写入 CD 的文件的临时区域的文件系统目录。 |
| CommonAdminTools | 47 | 包含计算机所有用户的管理工具的文件系统目录。 |
| CommonApplicationData | 35 | 用作所有用户使用的应用程序特定数据的公共储存库的目录。 |
| CommonDesktopDirectory | 25 | 包含在所有用户桌面上出现的文件和文件夹的文件系统目录。 |
| CommonDocuments | 46 | 包含所有用户共有的文档的文件系统目录。 |
| CommonMusic | 53 | 充当所有用户共有的音乐文件的存储库的文件系统目录。 |
| CommonOemLinks | 58 | 为了实现向后兼容,Windows Vista 中可以识别此值,但该特殊文件夹本身已不再使用。 |
| CommonPictures | 54 | 充当所有用户共有的图像文件的存储库的文件系统目录。 |
| CommonProgramFiles | 43 | 用于应用程序间共享的组件的目录。 若要在非 x86 进程中获取 x86 常规程序文件目录,请使用 ProgramFilesX86 成员。 |
| CommonProgramFilesX86 | 44 | “Program Files”文件夹。 |
| CommonPrograms | 23 | 跨应用程序共享的组件的文件夹。 |
| CommonStartMenu | 22 | 文件系统目录,包含所有用户的“开始”菜单上都出现的程序和文件夹。 |
| CommonStartup | 24 | 文件系统目录,包含所有用户的“启动”文件夹中都出现的程序。 |
| CommonTemplates | 45 | 包含所有用户都可以使用的模板的文件系统目录。 |
| CommonVideos | 55 | 充当所有用户共有的视频文件的存储库的文件系统目录。 |
| Cookies | 33 | 用作 Internet Cookie 的公共储存库的目录。 |
| Desktop | 0 | 逻辑桌面,而不是物理文件系统位置。 |
| DesktopDirectory | 16 | 用于物理上存储桌面上的文件对象的目录。 不要混淆此目录与桌面文件夹本身,后者是一个虚拟文件夹。 |
| Favorites | 6 | 用作用户收藏夹项的公共储存库的目录。 |
| Fonts | 20 | 包含字体的虚拟文件夹。 |
| History | 34 | 用作 Internet 历史记录项的公共储存库的目录。 |
| InternetCache | 32 | 用作 Internet 临时文件的公共储存库的目录。 |
| LocalApplicationData | 28 | 用作当前非漫游用户使用的应用程序特定数据的公共储存库的目录。 |
| LocalizedResources | 57 | 包含本地化资源数据的文件系统目录。 |
| MyComputer | 17 | “我的计算机”文件夹。 传递给 Environment.GetFolderPath 方法时,MyComputer 枚举成员始终生成空字符串(""),这是因为没有为“我的电脑”文件夹定义路径。 |
| MyDocuments | 5 | “我的文档”文件夹。 此成员等效于 Personal。 |
| MyMusic | 13 | “我的音乐”文件夹。 |
| MyPictures | 39 | “我的图片”文件夹。 |
| MyVideos | 14 | 充当属于某个用户的视频的存储库的文件系统目录。 |
| NetworkShortcuts | 19 | 文件系统目录,包含“网上邻居”虚拟文件夹中可能存在的链接对象。 |
| Personal | 5 | 用作文档的公共储存库的目录。 此成员等效于 MyDocuments。 |
| PrinterShortcuts | 27 | 文件系统目录,包含“打印机”虚拟文件夹中可能存在的链接对象。 |
| ProgramFiles | 38 | “Program files”目录。 在非 x86 进程中,将 ProgramFiles 传递到 GetFolderPath(Environment+SpecialFolder) 方法将返回非 x86 程序的路径。 若要在非 x86 进程中获取 x86 程序文件目录,请使用 ProgramFilesX86 该成员。 |
| ProgramFilesX86 | 42 | x86 “Program Files”文件夹。 |
| Programs | 2 | 包含用户程序组的目录。 |
| Recent | 8 | 包含用户最近使用过的文档的目录。 |
| Resources | 56 | 包含资源数据的文件系统目录。 |
| SendTo | 9 | 包含“发送”菜单项的目录。 |
| StartMenu | 11 | 包含“开始”菜单项的目录。 |
| Startup | 7 | 对应于用户的“开始”程序组的目录。 只要用户登录或启动 Windows,系统就会启动这些程序。 |
| System | 37 | “System”目录。 |
| SystemX86 | 41 | Windows “系统”文件夹。 |
| Templates | 21 | 用作文档模板的公共储存库的目录。 |
| UserProfile | 40 | 用户的配置文件文件夹。 应用程序不应在此级别上创建文件或文件夹;它们应将其数据放在 ApplicationData 所引用的位置之下。 |
| Windows | 36 | Windows 目录或 SYSROOT。 它与 %windir% 或 %SYSTEMROOT% 环境变量相对应。 |
[图片上传失败...(image-a5dd38-1739912544892)]
FolderBrowserDialog dialog = new FolderBrowserDialog();
//dialog.RootFolder = Environment.SpecialFolder.Fonts;//这个作用不太明显
dialog.InitialDirectory=@"C:\";
dialog.Description ="这个是默认的目录";
dialog.ShowNewFolderButton = false;//不显示新建文件夹
if (dialog.ShowDialog() == DialogResult.OK)
{
txtDir.Text = dialog.SelectedPath;
}










网友评论