Подтвердить что ты не робот

Открытие выбора каталога в С#

Я пишу быстрое и грязное приложение, которое читает все файлы из заданного каталога. В настоящее время я использую OpenFileDialog для выбора каталога и просто отбраковывая имя файла, которое он предоставляет. Похоже, что должен быть способ просто выбирать каталоги, хотя, но при быстром просмотре MSDN я его не нашел.

Если у вас есть способ в winforms или более предпочтительно в WPF, я все уши.

4b9b3361

Ответ 2

using FORMS = System.Windows.Forms;

var dialog = new System.Windows.Forms.FolderBrowserDialog();
FORMS.DialogResult result = dialog.ShowDialog();
if (result == FORMS.DialogResult.OK)
{
    MessageBox.Show("Result: " + dialog.SelectedPath);
}

Ответ 3

Скажем, у вас простая кнопка и текстовое поле, как показано ниже.

<Window x:Class="Example.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:Example"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="851.483">
<Grid>
    <TextBox x:Name="DisplayFolder" TextWrapping="Wrap" Text="" Background="AliceBlue" HorizontalAlignment="Left" Margin="10,10,0,379" Width="302"/>
    <Button Content="Select Folder" HorizontalAlignment="Left" Width="302" Click="SelectFolder" Margin="10,45,0,321"/>
</Grid>

Если вы добавите System.Windows.Forms в свои ссылки, а затем вы сможете:

public partial class MainWindow : Window
{
    private FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();

    public MainWindow()
    {
        InitializeComponent();
    }

    private void SelectFolder(object sender, RoutedEventArgs e)
    {
        DialogResult result = folderBrowserDialog1.ShowDialog();

        if(result == System.Windows.Forms.DialogResult.OK)
        {
            DisplayFolder.Text = folderBrowserDialog1.SelectedPath;
        }
    }

}