StorageFolder.GetFoldersAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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 指定为 QueryOptions 对象的 FolderDepth 属性的值。
方法 | 创建仅返回当前文件夹中的子文件夹的浅表查询 | 创建返回所有嵌套子文件夹的深层查询 |
---|---|---|
GetFoldersAsync () | 此方法的默认行为。 | 不适用 |
GetFoldersAsync (CommonFileQuery) | 指定 DefaultQuery 选项。 | 对于库文件夹,请指定 DefaultQuery 以外的选项。 |
GetFoldersAsync (CommonFileQuery、UInt32、UInt32) | 指定 DefaultQuery 选项。 | 对于库文件夹,请指定 DefaultQuery 以外的选项。 |
CreateFolderQuery () | 此方法的默认行为。 | 不适用 |
CreateFolderQuery (CommonFileQuery) | 指定 DefaultQuery 选项。 | 对于库文件夹,请指定 DefaultQuery 以外的选项。 |
CreateFolderQueryWithOptions (QueryOptions) | 如果未指定以下选项,则此方法的默认行为。 - 或 - 在实例化 QueryOptions 对象时,将 DefaultQuery 指定为 CommonFolderQuery 的值。 - 或 - 将“浅层”指定为 QueryOptions 对象的 FolderDepth 属性的值。 |
对于库文件夹,在实例化 QueryOptions 对象时,将 DefaultQuery 以外的值指定为 CommonFolderQuery 的值。 - 或 - 对于任何文件夹,请指定 Deep 作为 QueryOptions 的 FolderDepth 属性的值。 |
另请参阅
- GetFoldersAsync(CommonFolderQuery, UInt32, UInt32)
- GetFoldersAsync(CommonFolderQuery)
- 文件访问权限
- GetItemsAsync
适用于
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 对象表示。
实现
- 属性
例外
您无权访问当前文件夹的内容。 有关详细信息,请参阅 文件访问权限。