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 枚举中获取值。 从 CommonFileQuery 枚举指定 DefaultQuery 选项时,查询是一个浅表查询,仅返回当前文件夹中的文件。 从 CommonFileQuery 枚举指定另一个值时,查询是一个深度查询,它从当前文件夹及其子文件夹中返回平展的文件列表。

提示

CommonFileQuery 枚举中的某些值只能与库文件夹 (如图片库) 或家庭组文件夹一起使用。 除了 DefaultQuery 选项之外,还可以仅将 OrderByNameOrderBySearchRank 选项用于非库文件夹的文件夹。

若要从非库文件夹的文件夹获取深层查询结果,请调用 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 作为 QueryOptionsFolderDepth 属性的值。

另请参阅

适用于

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 对象表示。

实现

M:Windows.Storage.Search.IStorageFolderQueryOperations.GetFilesAsync(Windows.Storage.Search.CommonFileQuery,System.UInt32,System.UInt32) M:Windows.Storage.Search.IStorageFolderQueryOperations.GetFilesAsync(Windows.Storage.Search.CommonFileQuery,unsigned int,unsigned int) M:Windows.Storage.Search.IStorageFolderQueryOperations.GetFilesAsync(Windows.Storage.Search.CommonFileQuery,uint32_t,uint32_t)
属性

例外

你无权访问当前文件夹的内容。 有关详细信息,请参阅 文件访问权限

另请参阅

适用于