我们选择文件可以用 OpenFileDialog ,但是文件夹有两种方法。
法一:
用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能。下面来看看具体是怎么实现的。
首先新建一个winform的项目,再新建一个类文件(File->AddNewItem->Class)。 因为FolderNameEditor是在System.Windows.Forms.Design命名空间下的,此命名空间位于动态链接库system.design.dll,所以我们要先在解决方案中添加新的引用(reference)System.Design。然后在代码中添加:
using System.Windows.Forms.Design;
接着,我们新建一个FolderDialog类,此类从FolderNameEditor类继承,在此类中新建一个FolderBrowser类的实例。DisplayDialog(string description)函数用于设置实例fDialog的属性,并且显示浏览文件夹对话框。为了取得文件夹的路径,设置一个Path属性,返回选取文件夹的路径。
效果图:
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Text;
05 using System.Windows.Forms.Design;
06 using System.Windows.Forms;
07
08 namespace lnk
09 {
10 class FolderDialog : FolderNameEditor
11 {
12 FolderBrowser fDialog = new FolderBrowser();
13 public FolderDialog()
14 {
15 }
16 public DialogResult DisplayDialog()
17 {
18 return DisplayDialog( "确定你的文件夹路径!!");
19 }
20 public DialogResult DisplayDialog( string description)
21 {
22 fDialog . Description = description;
23 return fDialog . ShowDialog();
24 }
25 public string Path
26 {
27 get
28 {
29 return fDialog . DirectoryPath;
30 }
31 }
32 ~ FolderDialog()
33 {
34 fDialog . Dispose();
35 }
36
37 }
38 }
法二:
工具栏里面有一个FolderBrowserDialog控件,在winform中添加FolderBrowserDialog控件。然后在添加一个按钮。和一个label标签。
双击按钮添加代码
FolderBrowserDialog.ShowDialog();
label1.Text = BrowserDialog.SelectedPath;
然后运行!
此时点击按钮。就会弹出对话框。提示用户选择文件夹。选好后确定。用户选的地址就显示在了label中了!
参考代码:
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
folderBrowserDialog1.Description = "请选择保存输出图件的文件夹";
folderBrowserDialog1.ShowNewFolderButton = true;
folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal;
DialogResult result = folderBrowserDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string folderName = folderBrowserDialog1.SelectedPath;
if (folderName!="")
{
textBox1.Text = folderName;
}
}
}