Я следовал примеру Microsoft, как получить доступ к папкам, которые были выбраны с помощью папокщика. После этого я хотел получить все пути вложенных папок в выбранной верхней папке. Однако я не получаю никаких результатов.StorageFolder не получает данные обратно с получением папок async
Код:
var folderPicker = new Windows.Storage.Pickers.FolderPicker();
folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
folderPicker.FileTypeFilter.Add("*");
folderPicker.ViewMode = Windows.Storage.Pickers.PickerViewMode.List;
Windows.Storage.StorageFolder folder = await folderPicker.PickSingleFolderAsync();
if (folder != null)
{
Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.AddOrReplace("GameFilesToken", folder);
System.Diagnostics.Debug.WriteLine(folder.Path);
await FileManagementHelper.getFolders(folder.Path);
}
public static async Task<Queue<string>> getFolders(String TopLevel)
{
var Folder = await Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.GetFolderAsync("GameFilesToken");
var queryResults = Folder.CreateFolderQuery();
var folderList = await queryResults.GetFoldersAsync();
return new Queue<string>();
}
QueryResults
дает мне доступ к папке, в ту же папку, которую я использую первоначально. FolderList
ничего мне не дает.
Я понимаю свою проблему, единственное, что мне нужно, чтобы получить все каталоги под верхним уровнем. Так, например, TopLevel \, TopLevel \ Folder1, TopLevel \ Folder2, TopLevel \ Folder1 \ SubFolder1 –
@BaileyMiller, в этом случае вам необходимо установить [FolderDepth] (https://msdn.microsoft.com/en-us/ библиотека/windows/apps/windows.storage.search.queryoptions.folderdepth.aspx) свойство deep. Подробности см. В моем обновленном ответе. –