导读:本期聚焦于小伙伴创作的《C#中如何通过浏览按钮获取文件路径和文件夹路径》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#中如何通过浏览按钮获取文件路径和文件夹路径》有用,将其分享出去将是对创作者最好的鼓励。

在C#的Windows Forms应用开发中,通过浏览按钮获取文件路径和文件夹路径是非常常见的需求,.NET框架内置了对应的对话框控件,不需要开发者自行实现复杂的路径选择逻辑,只需要简单配置和调用就能完成功能。

C#中如何通过浏览按钮获取文件路径和文件夹路径

获取文件路径的方法

获取单个或多个文件路径可以使用OpenFileDialog控件,该控件会弹出系统自带的文件选择对话框,用户选择文件后返回对应的路径信息。

基础实现步骤

首先在窗体上添加一个按钮控件,用于触发浏览操作,再添加一个文本框控件,用于显示选择的文件路径。双击按钮进入点击事件处理逻辑,具体代码如下:

using System;
using System.Windows.Forms;

namespace PathSelectDemo
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void btnSelectFile_Click(object sender, EventArgs e)
        {
            // 创建OpenFileDialog实例
            OpenFileDialog openFileDialog = new OpenFileDialog();
            // 设置对话框标题
            openFileDialog.Title = "选择文件";
            // 设置初始目录为我的文档
            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            // 设置文件筛选器,格式为 描述|后缀,多个后缀用分号分隔
            openFileDialog.Filter = "所有文件|*.*|文本文件|*.txt|图片文件|*.jpg;*.png;*.gif";
            // 设置是否允许选择多个文件
            openFileDialog.Multiselect = false;

            // 显示对话框,判断用户是否点击了确定按钮
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                // 获取选择的文件路径,如果是多选则使用openFileDialog.FileNames获取所有路径数组
                string selectedFilePath = openFileDialog.FileName;
                // 将路径显示到文本框中
                txtFilePath.Text = selectedFilePath;
            }
        }
    }
}

常用属性说明

  • Title:设置文件选择对话框的标题文字
  • InitialDirectory:设置对话框打开时的默认目录,可以使用Environment.GetFolderPath获取系统特殊目录
  • Filter:设置文件筛选规则,用户可以通过下拉框选择只显示特定类型的文件
  • Multiselect:设置是否允许同时选择多个文件,默认值为false
  • FileName:用户选择单个文件后,该属性返回完整的文件路径,包含文件名和后缀
  • FileNames:当用户开启多选时,该属性返回所有选中文件的路径数组

获取文件夹路径的方法

获取文件夹路径可以使用FolderBrowserDialog控件,该控件会弹出文件夹选择对话框,用户只能选择目录而不能选择具体文件。

基础实现步骤

同样在窗体上添加一个按钮和文本框,按钮点击事件的处理逻辑如下:

using System;
using System.Windows.Forms;

namespace PathSelectDemo
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void btnSelectFolder_Click(object sender, EventArgs e)
        {
            // 创建FolderBrowserDialog实例
            FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
            // 设置对话框上方的描述文字
            folderBrowserDialog.Description = "请选择要操作的文件夹";
            // 设置是否显示新建文件夹按钮
            folderBrowserDialog.ShowNewFolderButton = true;
            // 设置默认选中的目录,可以为空
            folderBrowserDialog.SelectedPath = @"C:";

            // 显示对话框,判断用户是否点击了确定按钮
            if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
            {
                // 获取选择的文件夹路径
                string selectedFolderPath = folderBrowserDialog.SelectedPath;
                // 将路径显示到文本框中
                txtFolderPath.Text = selectedFolderPath;
            }
        }
    }
}

常用属性说明

  • Description:设置对话框上方的提示描述文字,引导用户操作
  • ShowNewFolderButton:设置是否允许用户在选择对话框中新建文件夹,默认值为true
  • SelectedPath:设置对话框打开时的默认选中目录,也可以获取用户最终选择的文件夹完整路径

注意事项

在使用这两个对话框控件时,需要注意以下几点:

  • 两个对话框的ShowDialog方法会阻塞当前线程,直到用户关闭对话框才会继续执行后续代码
  • 如果用户点击了取消按钮,ShowDialog的返回值不是DialogResult.OK,此时不要尝试获取路径,否则可能获取到空值或默认值
  • 如果需要在WPF应用中实现类似功能,可以使用Microsoft.Win32命名空间下的OpenFileDialog和FolderBrowserDialog,用法和Windows Forms中的类似,只是部分属性名称有细微差异
  • 获取到的路径是字符串类型,后续如果需要操作文件或文件夹,建议先判断路径是否存在,避免出现文件不存在的异常
需要注意的是,FolderBrowserDialog是传统的文件夹选择控件,样式比较老旧,如果需要更现代风格的文件夹选择界面,也可以考虑使用OpenFileDialog并设置ValidateNames为false、CheckFileExists为false,同时修改Filter属性来实现,不过这种方式兼容性稍差,需要根据项目需求选择。

C#OpenFileDialogFolderBrowserDialog文件路径文件夹路径修改时间:2026-06-24 05:03:21

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。