StorageFolder.GetItemsAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
GetItemsAsync() |
Возвращает файлы и вложенные папки в текущей папке. |
GetItemsAsync(UInt32, UInt32) |
Возвращает диапазон файлов и папок на основе индекса из списка всех файлов и вложенных папок в текущей папке. |
GetItemsAsync()
Возвращает файлы и вложенные папки в текущей папке.
public:
virtual IAsyncOperation<IVectorView<IStorageItem ^> ^> ^ GetItemsAsync() = GetItemsAsync;
/// [Windows.Foundation.Metadata.Overload("GetItemsAsyncOverloadDefaultStartAndCount")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<IStorageItem>> GetItemsAsync();
[Windows.Foundation.Metadata.Overload("GetItemsAsyncOverloadDefaultStartAndCount")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<IStorageItem>> GetItemsAsync();
function getItemsAsync()
Public Function GetItemsAsync () As IAsyncOperation(Of IReadOnlyList(Of IStorageItem))
Возвращаемое значение
После успешного завершения этого метода возвращается список файлов и папок в текущей папке. Список имеет тип IReadOnlyList<IStorageItem>. Каждый элемент в списке представлен объектом IStorageItem .
Для работы с возвращаемыми элементами вызовите метод IsOfType интерфейса IStorageItem , чтобы определить, является ли каждый элемент файлом или папкой. Затем приведите элемент к объекту StorageFolder или StorageFile.
Реализации
- Атрибуты
Исключения
У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.
Примеры
В следующем примере показано, как получить файлы и вложенные папки в текущей папке, вызвав метод GetItemsAsync().
using Windows.Storage;
using System.Threading.Tasks;
using System.Diagnostics; // For writing results to Output window.
// Get the app's installation folder.
StorageFolder appFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
// Get the files and folders in the current folder.
IReadOnlyList<IStorageItem> itemsInFolder = await appFolder.GetItemsAsync();
// Iterate over the results and print the list of items
// to the Visual Studio Output window.
foreach (IStorageItem item in itemsInFolder)
{
if(item.IsOfType(StorageItemTypes.Folder))
Debug.WriteLine("Folder: " + item.Name);
else
Debug.WriteLine("File: " + item.Name + ", " + item.DateCreated);
}
IAsyncAction MainPage::ExampleCoroutineAsync()
{
// Get the app's installation folder.
Windows::Storage::StorageFolder appFolder{ Windows::ApplicationModel::Package::Current().InstalledLocation() };
// Get the items in the current folder.
Windows::Foundation::Collections::IVectorView<Windows::Storage::IStorageItem> itemsInFolder{
co_await appFolder.GetItemsAsync() };
// Iterate over the results, and print the list of items to the Visual Studio output window.
for (IStorageItem const& itemInFolder : itemsInFolder)
{
std::wstringstream stringstream;
if (itemInFolder.IsOfType(Windows::Storage::StorageItemTypes::File))
{
stringstream << L"File: ";
}
else
{
stringstream << L"Folder: ";
}
stringstream << itemInFolder.Name().c_str() << std::endl;
::OutputDebugString(stringstream.str().c_str());
}
}
// Get the apps installation folder
StorageFolder^ appFolder = Windows::ApplicationModel::Package::Current->InstalledLocation;
// Get the items in the current folder;
create_task(appFolder->GetItemsAsync()).then([=](IVectorView<IStorageItem^>^ itemsInFolder) {
//Iterate over the results and print the list of items
// to the visual studio output window
for (auto it = itemsInFolder->First(); it->HasCurrent; it->MoveNext())
{
IStorageItem^ item = it->Current;
if (item->IsOfType(StorageItemTypes::File))
{
String^ output = "File: " + item->Name + "\n";
OutputDebugString(output->Begin());
}
else
{
String^ output = "Folder: " + item->Name + "\n";
OutputDebugString(output->Begin());
}
}
});
Комментарии
В следующей таблице перечислены методы класса StorageFolder , которые получают список файлов и папок. Таблица определяет мелкие запросы, возвращающие только элементы из текущей папки, и глубокие запросы, возвращающие элементы из текущей папки и ее вложенных папок.
Чтобы получить результаты глубокого запроса из папки, которая не является папкой библиотеки, вызовите метод CreateItemQueryWithOptions(QueryOptions) и укажите Deep в качестве значения свойства FolderDepth объекта QueryOptions .
Метод | Создание неглубокого запроса, который возвращает только элементы из текущей папки | Создание глубокого запроса, возвращающего элементы из текущей папки и ее вложенных папок. |
---|---|---|
GetItemsAsync() | Поведение этого метода по умолчанию. | Н/Д |
GetItemsAsync(UInt32, UInt32) | Поведение этого метода по умолчанию. | Н/Д |
CreateItemQuery() | Поведение этого метода по умолчанию. | Н/Д |
CreateItemQueryWithOptions(QueryOptions) | Поведение этого метода по умолчанию, если ни один из следующих параметров не указан. — или — Укажите DefaultQuery в качестве значения CommonFileQuery или CommonFolderQuery при создании экземпляра объекта QueryOptions . — или — Укажите значение Shallow в качестве значения свойства FolderDepth объекта QueryOptions . |
Для папки библиотеки при создании экземпляра объекта QueryOptions укажите значение, отличное от DefaultQuery, в качестве значения CommonFileQuery или CommonFolderQuery. — или — Для любой папки укажите Deep в качестве значения свойства FolderDepthобъекта QueryOptions. |
Чтобы получить только файлы, вызовите метод GetFilesAsync . Чтобы получить только папки, вызовите метод GetFoldersAsync .
См. также раздел
Применяется к
GetItemsAsync(UInt32, UInt32)
Возвращает диапазон файлов и папок на основе индекса из списка всех файлов и вложенных папок в текущей папке.
public:
virtual IAsyncOperation<IVectorView<IStorageItem ^> ^> ^ GetItemsAsync(unsigned int startIndex, unsigned int maxItemsToRetrieve) = GetItemsAsync;
/// [Windows.Foundation.Metadata.Overload("GetItemsAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IVectorView<IStorageItem>> GetItemsAsync(uint32_t const& startIndex, uint32_t const& maxItemsToRetrieve);
[Windows.Foundation.Metadata.Overload("GetItemsAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IReadOnlyList<IStorageItem>> GetItemsAsync(uint startIndex, uint maxItemsToRetrieve);
function getItemsAsync(startIndex, maxItemsToRetrieve)
Public Function GetItemsAsync (startIndex As UInteger, maxItemsToRetrieve As UInteger) As IAsyncOperation(Of IReadOnlyList(Of IStorageItem))
Параметры
- startIndex
-
UInt32
unsigned int
uint32_t
Отсчитываемый от нуля индекс первого элемента в диапазоне для получения.
- maxItemsToRetrieve
-
UInt32
unsigned int
uint32_t
Максимальное количество элементов для получения.
Возвращаемое значение
После успешного завершения этого метода возвращается список файлов и вложенных папок в текущей папке. Список имеет тип IReadOnlyList<IStorageItem>. Каждый элемент в списке представлен объектом IStorageItem .
Для работы с возвращаемыми элементами вызовите метод IsOfType интерфейса IStorageItem , чтобы определить, является ли каждый элемент файлом или папкой. Затем приведите элемент к объекту StorageFolder или StorageFile.
Реализации
- Атрибуты
Исключения
У вас нет разрешения на доступ к содержимому текущей папки. Дополнительные сведения см. в разделе Разрешения на доступ к файлам.