C#使用FolderBrowserDialog类实现选择打开文件夹方法详解

 更新时间:2013年11月27日 15:14:19   作者:  
这篇文章主要介绍了C#选择文件夹/打开文件夹/浏览文件夹等代码方法,大家参考使用

1.在C#中使用FolderBrowserDialog类,就可以实现选择文件夹的功能,并将所选择的的文件夹路径记录下来。

(1).首先先引入命名空间System.Windows.Forms;  
(2).然后在应用程序的主入口点,也就是static void Main()方法上面加上[STAThread]属性;

复制代码 代码如下:

/// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

(3).然后定义我们的事件触发;

复制代码 代码如下:

private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dilog = new FolderBrowserDialog();
            dilog.Description = "请选择文件夹";
            if(dilog.ShowDialog() == DialogResult.OK || dilog.ShowDialog() == DialogResult.Yes)
            {
                path=dilog.SelectedPath;
            }
        }


(4).打开刚才我们所选择的文件夹;

复制代码 代码如下:

private void button2_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(path))
            {
                System.Diagnostics.Process.Start("Explorer.exe", path);
            }
            else
            {
                MessageBox.Show("请选择路径");
            }
        }

以上就完成了,选择文件夹的功能。

2.需要注意的是在程序的入口点出,需要添加[STAThread]属性,当然也可以不添加这个属性,但是需要开启另外一个线程来处理。代码如下所示:

复制代码 代码如下:

private void button1_Click(object sender, EventArgs e)
        {
            Thread newThread = new Thread(new ThreadStart(TEST));
            newThread.SetApartmentState(ApartmentState.STA);
            newThread.Start();
            //或
            //Thread app = new Thread(new ParameterizedThreadStart(TEST));//两个TEST方法不一样,委托类型不一样
            //app.ApartmentState = ApartmentState.STA;
            //app.Start();

        }

        private void TEST(object obj)
        {
            FolderBrowserDialog dilog = new FolderBrowserDialog();
            dilog.Description = "请选择文件夹";
            if(dilog.ShowDialog() == DialogResult.OK)
            {
                path=dilog.SelectedPath;
            }

        }
        private void TEST()
        {
            FolderBrowserDialog dilog = new FolderBrowserDialog();
            dilog.Description = "请选择文件夹";
            if (dilog.ShowDialog() == DialogResult.OK)
            {
                path = dilog.SelectedPath;
            }
        }

相关文章

  • C#防SQL注入代码的三种方法

    C#防SQL注入代码的三种方法

    这篇文章主要介绍了C#防SQL注入代码的三种方法,有需要的朋友可以参考一下
    2014-01-01
  • C#中Timer定时器类的简单使用

    C#中Timer定时器类的简单使用

    定时器就是经过固定时间,执行固定任务,本文主要介绍了C#中Timer定时器类的简单使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C#8.0 中开启默认接口实现方法

    C#8.0 中开启默认接口实现方法

    这篇文章主要介绍了C#8.0 中开启默认接口实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧的相关资料
    2019-05-05
  • Oracle中for循环的使用方法

    Oracle中for循环的使用方法

    这篇文章介绍了Oracle中for循环的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • C#中TreeView实现适合两级节点的选中节点方法

    C#中TreeView实现适合两级节点的选中节点方法

    这篇文章主要介绍了C#中TreeView实现适合两级节点的选中节点方法,实例分析了C#中TreeView节点操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C# Ini文件操作实例

    C# Ini文件操作实例

    这篇文章主要介绍了C# Ini文件操作实例,需要的朋友可以参考下
    2014-02-02
  • C#判断字符是否为汉字的三种方法分享

    C#判断字符是否为汉字的三种方法分享

    判断一个字符是不是汉字通常有三种方法,第一种用 ASCII 码判断,第二种用汉字的 UNICODE 编码范围判 断,第三种用正则表达式判断,以下是具体方法
    2014-01-01
  • C# 单元测试全解析

    C# 单元测试全解析

    这篇文章主要介绍了C# 单元测试的相关资料,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • C#基于QRCode实现动态生成自定义二维码图片功能示例

    C#基于QRCode实现动态生成自定义二维码图片功能示例

    这篇文章主要介绍了C#基于QRCode实现动态生成自定义二维码图片功能,结合实例形式分析了C#使用QRCode动态生成二维码图片相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • 详解C#的排列组合

    详解C#的排列组合

    本文详细介绍了C#中的排列组合以及具体实现代码,如下所示,希望对大家有所帮助
    2016-11-11

最新评论