#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 .