Показывать файлы в папке при использовании FolderPicker

#c# #uwp

#c# #uwp

Вопрос:

Есть ли какой-либо возможный способ показать файлы в папках при использовании FolderPicker ?

Код :

 FolderPicker folderPicker = new FolderPicker();
folderPicker.ViewMode = PickerViewMode.Thumbnail;
folderPicker.SuggestedStartLocation = PickerLocationId.ComputerFolder;
folderPicker.FileTypeFilter.Add("*");

return await folderPicker.PickSingleFolderAsync();
  

Ответ №1:

Если вы используете WindowsAPICodePack, вы можете сделать это следующим образом:

 var openFolder = new CommonOpenFileDialog();
openFolder.AllowNonFileSystemItems = true;
openFolder.Multiselect = true;
openFolder.IsFolderPicker = true;
openFolder.Title = "Select folders.";

if (openFolder.ShowDialog() != CommonFileDialogResult.Ok)
{
    MessageBox.Show("No folder selected.");
    return;
}

// get all the directories in selected directory
var dirs = openFolder.FileNames.ToArray();
  

Однако, если вы используете just Windows.Storage.Pickers , приведенный вами код является примером, приведенным в документах Microsoft (https://learn.microsoft.com/en-us/uwp/api/windows.storage.pickers.folderpicker ), так что я не слишком уверен, почему это не работает.

Комментарии:

1. Да, в документах говорится, что в вашем примере должны отображаться все файлы в папках, взгляните.

2. Если вы не можете заставить это работать, вы всегда можете попробовать WinApiCodepack-Core и Shell на Nuget.

3. Ядро WinApiCodepack не полностью совместимо с моим проектом.

Ответ №2:

Для встроенного FolderPicker это невозможно. Вы могли бы вызвать ‘StorageFolder.Метод GetFilesAsync для получения файлов в текущей папке.

 FolderPicker folderPicker = new FolderPicker();
folderPicker.ViewMode = PickerViewMode.List;
folderPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
folderPicker.FileTypeFilter.Add("*");

var folder = await folderPicker.PickSingleFolderAsync();

foreach (var files in await folder.GetFilesAsync())
{
    Debug.WriteLine(files.DisplayName);
}
  

Если вы хотите показать эти файлы в пользовательском интерфейсе, вы могли бы выбрать некоторые элементы управления списком, чтобы показать их. Например, просмотр списка и сетки.

Комментарии:

1. Нет, потому что я хочу показывать их только при выборе папки, потому что я хочу, чтобы пользователь знал, что находится в папке, которую он собирается выбрать.

2. Как я уже сказал, для встроенного FolderPicker это невозможно. Вы могли бы попробовать отправить «Запрос функции» на WPDev UserVoice .