StorageFolder.GetFilesAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
GetFilesAsync() |
Возвращает файлы в текущей папке. |
GetFilesAsync(CommonFileQuery) |
Возвращает файлы в текущей папке. Также получает файлы из вложенных папок текущей папки, если значение аргумента запроса отличается от CommonFileQuery.DefaultQuery. Файлы сортируются по указанному значению перечисления CommonFileQuery . |
GetFilesAsync(CommonFileQuery, UInt32, UInt32) |
Возвращает диапазон файлов на основе индекса из списка всех файлов в текущей папке. Также получает файлы из вложенных папок текущей папки, если значение аргумента запроса отличается от CommonFileQuery.DefaultQuery. Файлы сортируются по указанному значению перечисления CommonFileQuery . |
GetFilesAsync()
Возвращает файлы в текущей папке.
public:
virtual IAsyncOperation<IVectorView<StorageFile ^> ^> ^ GetFilesAsync() = GetFilesAsync;
/// [Windows.Foundation.Metadata.Overload("GetFilesAsyncOverloadDefaultOptionsStartAndCount")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<StorageFile>> GetFilesAsync();
[Windows.Foundation.Metadata.Overload("GetFilesAsyncOverloadDefaultOptionsStartAndCount")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<StorageFile>> GetFilesAsync();
function getFilesAsync()
Public Function GetFilesAsync () As IAsyncOperation(Of IReadOnlyList(Of StorageFile))
Возвращаемое значение
После успешного завершения этого метода возвращается список файлов в текущей папке. Список имеет тип IReadOnlyList<StorageFile>. Каждый файл в списке представлен объектом StorageFile .
Реализации
- Атрибуты
Исключения
У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.
Примеры
В следующем примере показано, как получить содержимое папки "Изображения" пользователя и ее вложенных папок, отсортированных по дате, путем вызова перегруженного метода GetFilesAsync(CommonFileQuery, UInt32, UInt32). В этом примере возвращается не более 20 файлов, начиная с файла с индексом 0. Так как параметр CommonFileQuery.OrderByDate сортирует даты по убыванию (т. е. от самых новых к старым), этот пример возвращает 20 последних фотографий пользователя.
Перед выполнением следующего примера включите возможность "Библиотека рисунков" в файле манифеста приложения.
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 first 20 files in the current folder, sorted by date.
IReadOnlyList<StorageFile> sortedItems = await picturesFolder.GetFilesAsync(CommonFileQuery.OrderByDate,0,20);
// Iterate over the results and print the list of files
// to the Visual Studio Output window.
foreach (StorageFile file in sortedItems)
Debug.WriteLine(file.Name + ", " + file.DateCreated);
#include <winrt/Windows.Storage.h>
#include <winrt/Windows.Storage.Search.h>
...
IAsyncAction ExampleCoroutineAsync()
{
// Get the user's Pictures library.
// Enable the Pictures Library capability in the app manifest file.
Windows::Storage::StorageFolder picturesLibrary{ Windows::Storage::KnownFolders::PicturesLibrary() };
// Get the first 20 sorted images in the library, sorted by date.
Windows::Foundation::Collections::IVectorView<Windows::Storage::StorageFile> filesInFolder{
co_await picturesLibrary.GetFilesAsync(Windows::Storage::Search::CommonFileQuery::OrderByDate, 0, 20) };
// Iterate over the results, and print the list of files to the Visual Studio output window.
for (Windows::Storage::StorageFile const& fileInFolder : filesInFolder)
{
std::wstring output{ fileInFolder.Name() + L' ' };
::OutputDebugString(output.c_str());
}
::OutputDebugString(L"\n");
}
// Get user's pictures library
StorageFolder^ picturesLibrary = KnownFolders::PicturesLibrary;
// Get the first 20 sorted images in the library
create_task(picturesLibrary->GetFilesAsync(CommonFileQuery::OrderByDate,0,20)).then([=](IVectorView<StorageFile^>^ filesInFolder) {
//Iterate over the results and print the list of files
// to the visual studio output window
for (auto it = filesInFolder->First(); it->HasCurrent; it->MoveNext())
{
StorageFile^ file = it->Current;
String^ output = file->Name + "\n";
OutputDebugString(output->Begin());
}
});
Комментарии
Этот запрос является неглубоким запросом, который возвращает только файлы в текущей папке. Список методов, определяющих неглубокие запросы и глубокие запросы, см. в разделе Примечания в разделе GetFilesAsync.
В следующей таблице перечислены методы класса StorageFolder , которые получают список файлов. Таблица определяет мелкие запросы, которые возвращают только файлы из текущей папки, и глубокие запросы, возвращающие файлы из текущей папки и ее вложенных папок.
Некоторые методы принимают значение из перечисления CommonFileQuery . При указании параметра DefaultQuery из перечисления CommonFileQuery запрос представляет собой неглубокий запрос, возвращающий только файлы в текущей папке. При указании другого значения из перечисления CommonFileQuery запрос представляет собой глубокий запрос, который возвращает плоский список файлов из текущей папки и ее вложенных папок.
Совет
Некоторые значения перечисления CommonFileQuery можно использовать только с папкой библиотеки (например, с папкой "Изображения") или домашней группой. В дополнение к параметру DefaultQuery можно использовать только параметры OrderByName и OrderBySearchRank с папкой, которая не является папкой библиотеки.
Чтобы получить результаты глубокого запроса из папки, которая не является папкой библиотеки, вызовите метод CreateFileQueryWithOptions(QueryOptions) и укажите Deep в качестве значения свойства FolderDepth объекта QueryOptions .
Метод | Создание неглубокого запроса, который возвращает только файлы из текущей папки. | Создание глубокого запроса, который возвращает файлы из текущей папки и ее вложенных папок. |
---|---|---|
GetFilesAsync() | Поведение этого метода по умолчанию. | Н/Д |
GetFilesAsync(CommonFileQuery) | Укажите параметр DefaultQuery . | Для папки библиотеки укажите параметр, отличный от DefaultQuery. |
GetFilesAsync(CommonFileQuery, UInt32, UInt32) | Укажите параметр DefaultQuery . | Для папки библиотеки укажите параметр, отличный от DefaultQuery. |
CreateFileQuery() | Поведение этого метода по умолчанию. | Н/Д |
CreateFileQuery(CommonFileQuery) | Укажите параметр DefaultQuery . | Для папки библиотеки укажите параметр, отличный от DefaultQuery. |
CreateFileQueryWithOptions(QueryOptions) | Поведение этого метода по умолчанию, если ни один из следующих параметров не указан. — или — Укажите DefaultQuery в качестве значения CommonFileQuery при создании экземпляра объекта QueryOptions . — или — Укажите значение Shallow в качестве значения свойства FolderDepth объекта QueryOptions . |
Для папки библиотеки при создании экземпляра объекта QueryOptions укажите значение, отличное от DefaultQuery, в качестве значения CommonFileQuery. — или — Для любой папки укажите Deep в качестве значения свойства FolderDepthобъекта QueryOptions. |
См. также раздел
- GetFilesAsync(CommonFileQuery, UInt32, UInt32)
- GetFilesAsync(CommonFileQuery)
- Разрешения на доступ к файлам
- GetItemsAsync
Применяется к
GetFilesAsync(CommonFileQuery)
Возвращает файлы в текущей папке. Также получает файлы из вложенных папок текущей папки, если значение аргумента запроса отличается от CommonFileQuery.DefaultQuery. Файлы сортируются по указанному значению перечисления CommonFileQuery .
public:
virtual IAsyncOperation<IVectorView<StorageFile ^> ^> ^ GetFilesAsync(CommonFileQuery query) = GetFilesAsync;
/// [Windows.Foundation.Metadata.Overload("GetFilesAsyncOverloadDefaultStartAndCount")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<StorageFile>> GetFilesAsync(CommonFileQuery const& query);
[Windows.Foundation.Metadata.Overload("GetFilesAsyncOverloadDefaultStartAndCount")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<StorageFile>> GetFilesAsync(CommonFileQuery query);
function getFilesAsync(query)
Public Function GetFilesAsync (query As CommonFileQuery) As IAsyncOperation(Of IReadOnlyList(Of StorageFile))
Параметры
- query
- CommonFileQuery
Одно из значений перечисления, которое указывает способ сортировки файлов и определяет, является ли запрос неглубоким или глубоким.
Возвращаемое значение
После успешного завершения этого метода возвращается неструктурированный список файлов, отсортированных в соответствии с запросом. Список имеет тип IReadOnlyList<StorageFile>. Каждый файл в списке представлен объектом StorageFile .
Реализации
- Атрибуты
Исключения
У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.
См. также раздел
- GetFilesAsync(CommonFileQuery, UInt32, UInt32)
- GetFilesAsync()
- Разрешения на доступ к файлам
- GetItemsAsync
Применяется к
GetFilesAsync(CommonFileQuery, UInt32, UInt32)
Возвращает диапазон файлов на основе индекса из списка всех файлов в текущей папке. Также получает файлы из вложенных папок текущей папки, если значение аргумента запроса отличается от CommonFileQuery.DefaultQuery. Файлы сортируются по указанному значению перечисления CommonFileQuery .
public:
virtual IAsyncOperation<IVectorView<StorageFile ^> ^> ^ GetFilesAsync(CommonFileQuery query, unsigned int startIndex, unsigned int maxItemsToRetrieve) = GetFilesAsync;
/// [Windows.Foundation.Metadata.Overload("GetFilesAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<StorageFile>> GetFilesAsync(CommonFileQuery const& query, uint32_t const& startIndex, uint32_t const& maxItemsToRetrieve);
[Windows.Foundation.Metadata.Overload("GetFilesAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<StorageFile>> GetFilesAsync(CommonFileQuery query, uint startIndex, uint maxItemsToRetrieve);
function getFilesAsync(query, startIndex, maxItemsToRetrieve)
Public Function GetFilesAsync (query As CommonFileQuery, startIndex As UInteger, maxItemsToRetrieve As UInteger) As IAsyncOperation(Of IReadOnlyList(Of StorageFile))
Параметры
- query
- CommonFileQuery
Одно из значений перечисления, которое указывает способ сортировки файлов и определяет, является ли запрос неглубоким или глубоким.
- startIndex
-
UInt32
unsigned int
uint32_t
Отсчитываемый от нуля индекс первого файла в диапазоне для извлечения.
- maxItemsToRetrieve
-
UInt32
unsigned int
uint32_t
Максимальное количество извлекаемых файлов.
Возвращаемое значение
После успешного завершения этого метода возвращается неструктурированный список файлов, отсортированных в соответствии с запросом. Список имеет тип IReadOnlyList<StorageFile>. Каждый файл в списке представлен объектом StorageFile .
Реализации
- Атрибуты
Исключения
У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.