Ответ 1
Вы хотите использовать FolderBrowserDialog.
Я пишу быстрое и грязное приложение, которое читает все файлы из заданного каталога. В настоящее время я использую OpenFileDialog для выбора каталога и просто отбраковывая имя файла, которое он предоставляет. Похоже, что должен быть способ просто выбирать каталоги, хотя, но при быстром просмотре MSDN я его не нашел.
Если у вас есть способ в winforms или более предпочтительно в WPF, я все уши.
Вы хотите использовать FolderBrowserDialog.
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);
}
Скажем, у вас простая кнопка и текстовое поле, как показано ниже.
<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;
}
}
}