StorageFolder.GetFilesAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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 枚举中获取值。 从 CommonFileQuery 枚举指定 DefaultQuery 选项时,查询是一个浅表查询,仅返回当前文件夹中的文件。 从 CommonFileQuery 枚举指定另一个值时,查询是一个深度查询,它从当前文件夹及其子文件夹中返回平展的文件列表。
提示
CommonFileQuery 枚举中的某些值只能与库文件夹 (如图片库) 或家庭组文件夹一起使用。 除了 DefaultQuery 选项之外,还可以仅将 OrderByName 和 OrderBySearchRank 选项用于非库文件夹的文件夹。
若要从非库文件夹的文件夹获取深层查询结果,请调用 CreateFileQueryWithOptions (QueryOptions) 方法,并将 Deep 指定为 QueryOptions 对象的 FolderDepth 属性的值。
方法 | 创建仅返回当前文件夹中的文件的浅层查询 | 创建从当前文件夹及其子文件夹中返回文件的深度查询 |
---|---|---|
GetFilesAsync () | 此方法的默认行为。 | 不适用 |
GetFilesAsync (CommonFileQuery) | 指定 DefaultQuery 选项。 | 对于库文件夹,指定 DefaultQuery 以外的选项。 |
GetFilesAsync (CommonFileQuery、UInt32、UInt32) | 指定 DefaultQuery 选项。 | 对于库文件夹,指定 DefaultQuery 以外的选项。 |
CreateFileQuery () | 此方法的默认行为。 | 不适用 |
CreateFileQuery (CommonFileQuery) | 指定 DefaultQuery 选项。 | 对于库文件夹,指定 DefaultQuery 以外的选项。 |
CreateFileQueryWithOptions (QueryOptions) | 如果未指定以下选项,则此方法的默认行为。 - 或 - 在实例化 QueryOptions 对象时,将 DefaultQuery 指定为 CommonFileQuery 的值。 - 或 - 将浅层指定为 QueryOptions 对象的 FolderDepth 属性的值。 |
对于库文件夹,在实例化 QueryOptions 对象时,将 DefaultQuery 以外的值指定为 CommonFileQuery 的值。 - 或 - 对于任何文件夹,请指定 Deep 作为 QueryOptions 的 FolderDepth 属性的值。 |
另请参阅
适用于
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)
从当前文件夹中所有文件的列表中获取基于索引的文件范围。 当 查询 参数的值不是 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 对象表示。
实现
- 属性
例外
你无权访问当前文件夹的内容。 有关详细信息,请参阅 文件访问权限。