关于c#:OpenFileDialog。 “指定目录对话框”如何?

OpenFileDialog. How about “Specify Directory Dialog”?

在文件路径字段上,我想捕获目录路径,例如:

1
textbox1.Text = directory path

任何人?


如果希望用户选择文件夹,则可以使用FolderFrowserDialog类。

http://msdn.microsoft.com/zh-CN/library/system.windows.forms.folderbrowserdialog.aspx

1
2
3
4
DialogResult result = folderBrowserDialog1.ShowDialog();
if (result.Equals(get_DialogResult().OK)) {
    textbox1.Text = folderBrowserDialog1.get_SelectedPath();
}

如果您只想从完整路径获取目录,则可以执行以下操作:

1
textbox1.Text = Path.GetDirectoryName(@"c:\windows\temp\myfile.txt");

这会将文本属性设置为" c: windows temp"


好吧,我正在使用VS 2008 SP1。 这就是我所需要的:

1
2
3
4
5
6
7
8
9
10
11
12
13
private void button1_Click(object sender, EventArgs e)
{
    FolderBrowserDialog profilePath = new FolderBrowserDialog();

    if (profilePath.ShowDialog() == DialogResult.OK)        
    {
        profilePathTextBox.Text = profilePath.SelectedPath;
    }
    else
    {
        profilePathTextBox.Text ="Please Specify The Profile Path";
    }
}


如果您不想使用糟糕的,非用户友好的对话框*,请尝试使用Ookii.Dialogs或查看有关如何配置OpenFileDialog以选择文件夹的其他答案。 我认为Ookii唯一的缺点是它需要.NET 4 Full,而不仅仅是Client Profile。 但是源包含在下载中,因此我将继续进行工作。 可惜的是该许可证不是LGPL或类似许可证...

另请参阅:带文本按钮的WinForms消息框

*这是FolderBrowserDialog的样子:

Ugly, unfriendly folder browser dialog


推荐阅读