在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天在做报表统计的时候,遇到将报表生成到指定的位置去,在网上找了一些资料,整理了一下,分享一下。 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; } }
选择文件夹的Demo点击此处下载。
|
请发表评论