OpenFileDialog. Как насчет "Указать диалог каталога"? - PullRequest
3 голосов
/ 17 сентября 2008

В поле пути к файлу я хочу записать путь к каталогу, например:

textbox1.Text = directory path

Любой

Ответы [ 3 ]

10 голосов
/ 17 сентября 2008

Существует класс FolderBrowserDialog, который вы можете использовать, если хотите, чтобы пользователь выбрал папку.

http://msdn.microsoft.com/en-us/library/system.windows.forms.folderbrowserdialog.aspx

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

Если все, что вам нужно, это получить директорию по полному пути, вы можете сделать это:

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

Это установит для свойства Text значение "c: \ windows \ temp \"

4 голосов
/ 17 сентября 2008

Ну, я использую VS 2008 SP1. Это все, что мне нужно:

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";
    }
}
0 голосов
/ 08 июня 2011

Если вам не нужен ужасный, не понятный пользователю диалог *, попробуйте Ookii.Dialogs или посмотрите другие ответы на Как настроить OpenFileDialog для выбора папок?, Единственный недостаток, который я вижу в Ookii, - это то, что для него требуется .NET 4 Full, а не просто профиль клиента. Но источник включен в загрузку, так что я собираюсь работать над этим. Жаль, что лицензия не LGPL или подобная ...

См. Также: Окно сообщений WinForms с текстовыми кнопками

* Вот как выглядит FolderBrowserDialog:

Ugly, unfriendly folder browser dialog

...