Поделиться через


StorageFolder.GetFoldersAsync Метод

Определение

Перегрузки

GetFoldersAsync()

Возвращает вложенные папки в текущей папке.

GetFoldersAsync(CommonFolderQuery)

Возвращает вложенные папки в текущей папке. Если значение аргумента запроса отличается от CommonFolderQuery.DefaultQuery, возвращает список виртуальных папок, представляющих контейнеры для групп файлов во вложенных папках текущей папки. Файлы группируются в папки на основе указанного значения перечисления CommonFolderQuery .

GetFoldersAsync(CommonFolderQuery, UInt32, UInt32)

Возвращает диапазон папок на основе индекса из списка всех вложенных папок в текущей папке. Если значение аргумента запроса отличается от CommonFolderQuery.DefaultQuery, возвращает список виртуальных папок, представляющих контейнеры для групп файлов во вложенных папках текущей папки. Файлы группируются в папки на основе указанного значения перечисления CommonFolderQuery .

GetFoldersAsync()

Возвращает вложенные папки в текущей папке.

public:
 virtual IAsyncOperation<IVectorView<StorageFolder ^> ^> ^ GetFoldersAsync() = GetFoldersAsync;
/// [Windows.Foundation.Metadata.Overload("GetFoldersAsyncOverloadDefaultOptionsStartAndCount")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<StorageFolder>> GetFoldersAsync();
[Windows.Foundation.Metadata.Overload("GetFoldersAsyncOverloadDefaultOptionsStartAndCount")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<StorageFolder>> GetFoldersAsync();
function getFoldersAsync()
Public Function GetFoldersAsync () As IAsyncOperation(Of IReadOnlyList(Of StorageFolder))

Возвращаемое значение

После успешного завершения этого метода возвращается список вложенных папок в текущей папке. Список имеет тип IReadOnlyList<StorageFolder>. Каждая папка в списке представлена объектом StorageFolder .

Реализации

Атрибуты

Исключения

У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.

Примеры

В следующем примере показано, как получить содержимое вложенных папок в папке "Изображения" пользователя, сгруппированные по месяцам, путем вызова метода GetFoldersAsync(CommonFolderQuery, UInt32, UInt32). (Файлы из корня текущей папки не включаются.) В этом примере возвращается не более 4 папок, начиная с папки с индексом 0. Так как параметр CommonFolderQuery.GroupByMonth сортирует даты в порядке убывания (т. е. от самых новых к старым), в этом примере возвращаются папки за последние 4 месяца, за которые у пользователя есть фотографии. Каждая папка содержит все фотографии пользователя за этот месяц.

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

using Windows.Storage;
using Windows.Storage.Search;
using System.Threading.Tasks;
using System.Diagnostics; // For writing results to Output window.

// Get the user's Pictures folder.
// Enable the corresponding capability in the app manifest file.
StorageFolder picturesFolder = KnownFolders.PicturesLibrary;

// Get the files in the subfolders of the user's Pictures folder,
// grouped by month. Get only the first 4 folders (months).
IReadOnlyList <StorageFolder> groupedItems = await picturesFolder.GetFoldersAsync(CommonFolderQuery.GroupByMonth, 0, 4);

// Iterate over the results and print the list of folders
// and files to the Visual Studio Output window.
foreach (StorageFolder folder in groupedItems)
{
    Debug.WriteLine(folder.Name);

    // To iterate over the files in each folder, uncomment the following lines. 
    // foreach(StorageFile file in await folder.GetFilesAsync())
    //    Debug.WriteLine(" " + file.Name);
}
IAsyncAction MainPage::ExampleCoroutineAsync()
{
    // Get the users's Pictures folder.
    // Enable the Pictures Library capability in the app manifest file.
    Windows::Storage::StorageFolder picturesFolder{ Windows::Storage::KnownFolders::PicturesLibrary() };

    // Get the files in the user's Pictures folder, grouped by month.
    // Get only the first 4 folders (months).
    Windows::Foundation::Collections::IVectorView<Windows::Storage::StorageFolder> itemsInFolder{
        co_await picturesFolder.GetFoldersAsync(Windows::Storage::Search::CommonFolderQuery::GroupByMonth, 0, 4) };

    // Iterate over the results, and print the list of file groups to the Visual Studio output window.
    for (StorageFolder const& itemInFolder : itemsInFolder)
    {
        std::wstring output{ itemInFolder.Name() };
        ::OutputDebugString(output.c_str());
    }
}
// Get the user's Pictures folder.
// Enable the corresponding capability in the app manifest file.
StorageFolder^ picturesFolder = KnownFolders::PicturesLibrary;

// Get the files in the user's Pictures folder, grouped by month.
// Get only the first 4 folders (months).
create_task(picturesFolder->GetFoldersAsync(CommonFolderQuery::GroupByMonth, 0, 4)).then([=](IVectorView<StorageFolder^>^ itemsInFolder) {
 //Iterate over the results and print the list of file groups
 // to the visual studio output window
 for (auto it = itemsInFolder->First(); it->HasCurrent; it->MoveNext())
 {
  StorageFolder^ file = it->Current;
  String^ output = file->Name + "\n";
  OutputDebugString(output->Begin());
 }
});

Комментарии

Этот запрос является неглубоким запросом, который возвращает только вложенные папки в текущей папке.

В следующей таблице перечислены методы класса StorageFolder , которые получают список вложенных папок. Таблица определяет мелкие запросы, возвращающие только вложенные папки из текущей папки, и глубокие запросы, возвращающие содержимое вложенных папок, сгруппированных в виртуальные папки.

Некоторые методы принимают значение из перечисления CommonFolderQuery .

  • При использовании параметра DefaultQuery с любой папкой запрос возвращает список вложенных папок в файловой системе.
  • При использовании параметра, отличного от DefaultQuery , с папкой библиотеки запрос возвращает список виртуальных папок, представляющих контейнеры для файлов из вложенных папок текущей папки. (Файлы из текущей папки не включаются.) Файлы группируются в виртуальные папки на основе указанного значения из перечисления CommonFolderQuery . Например, если указать GroupByMonth, запрос возвращает список виртуальных папок, таких как July 2014, August 2014и September 2014.

Совет

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

Чтобы получить подробные результаты запроса из папки, которая не является папкой библиотеки, вызовите метод CreateFolderQueryWithOptions(QueryOptions) и укажите Deep в качестве значения свойства FolderDepth объекта QueryOptions .

Метод Создание неглубокого запроса, который возвращает только вложенные папки из текущей папки Создание глубокого запроса, возвращающего все вложенные папки
GetFoldersAsync() Поведение этого метода по умолчанию. Н/Д
GetFoldersAsync(CommonFileQuery) Укажите параметр DefaultQuery . Для папки библиотеки укажите параметр, отличный от DefaultQuery.
GetFoldersAsync(CommonFileQuery, UInt32, UInt32) Укажите параметр DefaultQuery . Для папки библиотеки укажите параметр, отличный от DefaultQuery.
CreateFolderQuery() Поведение этого метода по умолчанию. Н/Д
CreateFolderQuery(CommonFileQuery) Укажите параметр DefaultQuery . Для папки библиотеки укажите параметр, отличный от DefaultQuery.
CreateFolderQueryWithOptions(QueryOptions) Поведение этого метода по умолчанию, если ни один из следующих параметров не указан.
— или —
Укажите DefaultQuery в качестве значения CommonFolderQuery при создании экземпляра объекта QueryOptions .
— или —
Укажите Shallow в качестве значения свойства FolderDepth объекта QueryOptions .
Для папки библиотеки при создании экземпляра объекта QueryOptions укажите значение, отличное от DefaultQuery, в качестве значения CommonFolderQuery.
— или —
Для любой папки укажите Deep в качестве значения свойства FolderDepthобъекта QueryOptions.

См. также раздел

Применяется к

GetFoldersAsync(CommonFolderQuery)

Возвращает вложенные папки в текущей папке. Если значение аргумента запроса отличается от CommonFolderQuery.DefaultQuery, возвращает список виртуальных папок, представляющих контейнеры для групп файлов во вложенных папках текущей папки. Файлы группируются в папки на основе указанного значения перечисления CommonFolderQuery .

public:
 virtual IAsyncOperation<IVectorView<StorageFolder ^> ^> ^ GetFoldersAsync(CommonFolderQuery query) = GetFoldersAsync;
/// [Windows.Foundation.Metadata.Overload("GetFoldersAsyncOverloadDefaultStartAndCount")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<StorageFolder>> GetFoldersAsync(CommonFolderQuery const& query);
[Windows.Foundation.Metadata.Overload("GetFoldersAsyncOverloadDefaultStartAndCount")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<StorageFolder>> GetFoldersAsync(CommonFolderQuery query);
function getFoldersAsync(query)
Public Function GetFoldersAsync (query As CommonFolderQuery) As IAsyncOperation(Of IReadOnlyList(Of StorageFolder))

Параметры

query
CommonFolderQuery

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

Возвращаемое значение

После успешного завершения этого метода возвращается список вложенных папок. Если значение аргумента запроса отличается от CommonFolderQuery.DefaultQuery, этот метод возвращает список виртуальных папок, представляющих контейнеры для групп файлов во вложенных папках текущей папки. (Файлы из текущей папки не включаются.) Файлы группируются в соответствии с запросом. Список имеет тип IReadOnlyList<StorageFolder>. Каждая папка в списке представлена объектом StorageFolder .

Реализации

Атрибуты

Исключения

У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.

См. также раздел

Применяется к

GetFoldersAsync(CommonFolderQuery, UInt32, UInt32)

Возвращает диапазон папок на основе индекса из списка всех вложенных папок в текущей папке. Если значение аргумента запроса отличается от CommonFolderQuery.DefaultQuery, возвращает список виртуальных папок, представляющих контейнеры для групп файлов во вложенных папках текущей папки. Файлы группируются в папки на основе указанного значения перечисления CommonFolderQuery .

public:
 virtual IAsyncOperation<IVectorView<StorageFolder ^> ^> ^ GetFoldersAsync(CommonFolderQuery query, unsigned int startIndex, unsigned int maxItemsToRetrieve) = GetFoldersAsync;
/// [Windows.Foundation.Metadata.Overload("GetFoldersAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<StorageFolder>> GetFoldersAsync(CommonFolderQuery const& query, uint32_t const& startIndex, uint32_t const& maxItemsToRetrieve);
[Windows.Foundation.Metadata.Overload("GetFoldersAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<StorageFolder>> GetFoldersAsync(CommonFolderQuery query, uint startIndex, uint maxItemsToRetrieve);
function getFoldersAsync(query, startIndex, maxItemsToRetrieve)
Public Function GetFoldersAsync (query As CommonFolderQuery, startIndex As UInteger, maxItemsToRetrieve As UInteger) As IAsyncOperation(Of IReadOnlyList(Of StorageFolder))

Параметры

query
CommonFolderQuery

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

startIndex
UInt32

unsigned int

uint32_t

Отсчитываемый от нуля индекс первой папки в диапазоне для извлечения.

maxItemsToRetrieve
UInt32

unsigned int

uint32_t

Максимальное количество извлекаемых папок.

Возвращаемое значение

После успешного завершения этого метода возвращается список вложенных папок. Если значение аргумента запроса отличается от CommonFolderQuery.DefaultQuery, этот метод возвращает список виртуальных папок, представляющих контейнеры для групп файлов во вложенных папках текущей папки. (Файлы из текущей папки не включаются.) Файлы группируются в соответствии с запросом. Список имеет тип IReadOnlyList<StorageFolder>. Каждая папка в списке представлена объектом StorageFolder .

Реализации

M:Windows.Storage.Search.IStorageFolderQueryOperations.GetFoldersAsync(Windows.Storage.Search.CommonFolderQuery,System.UInt32,System.UInt32) M:Windows.Storage.Search.IStorageFolderQueryOperations.GetFoldersAsync(Windows.Storage.Search.CommonFolderQuery,unsigned int,unsigned int) M:Windows.Storage.Search.IStorageFolderQueryOperations.GetFoldersAsync(Windows.Storage.Search.CommonFolderQuery,uint32_t,uint32_t)
Атрибуты

Исключения

У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.

См. также раздел

Применяется к