欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-16 14:54:22
1.在c#中使用folderbrowserdialog类,就可以实现选择文件夹的功能,并将所选择的的文件夹路径记录下来。 (1).首先先引入命名空间system.wind...

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;
            }
        }