StorageFolder.GetItemsAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
GetItemsAsync() |
Obtiene los archivos y subcarpetas de la carpeta actual. |
GetItemsAsync(UInt32, UInt32) |
Obtiene un intervalo de archivos y carpetas basados en índices de la lista de todos los archivos y subcarpetas de la carpeta actual. |
GetItemsAsync()
Obtiene los archivos y subcarpetas de la carpeta actual.
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))
Devoluciones
Cuando este método se completa correctamente, devuelve una lista de los archivos y carpetas de la carpeta actual. La lista es de tipo IReadOnlyList<IStorageItem>. Cada elemento de la lista se representa mediante un objeto IStorageItem .
Para trabajar con los elementos devueltos, llame al método IsOfType de la interfaz IStorageItem para determinar si cada elemento es un archivo o una carpeta. A continuación, convierta el elemento en storageFolder o StorageFile.
Implementaciones
- Atributos
Excepciones
No tiene permiso para acceder al contenido de la carpeta actual. Para obtener más información, consulte Permisos de acceso a archivos.
Ejemplos
En el ejemplo siguiente se muestra cómo obtener los archivos y subcarpetas de la carpeta actual llamando al método 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());
}
}
});
Comentarios
En la tabla siguiente se enumeran los métodos de la clase StorageFolder que obtienen una lista de archivos y carpetas. La tabla identifica consultas poco profundas que solo devuelven elementos de la carpeta actual y consultas profundas que devuelven elementos de la carpeta actual y de sus subcarpetas.
Para obtener resultados de consultas profundas de una carpeta que no es una carpeta de biblioteca, llame al método CreateItemQueryWithOptions(QueryOptions) y especifique Deep como valor de la propiedad FolderDepth del objeto QueryOptions .
Método | Crear una consulta superficial que solo devuelva elementos de la carpeta actual | Cree una consulta profunda que devuelva elementos de la carpeta actual y de sus subcarpetas. |
---|---|---|
GetItemsAsync() | Comportamiento predeterminado de este método. | N/D |
GetItemsAsync(UInt32, UInt32) | Comportamiento predeterminado de este método. | N/D |
CreateItemQuery() | Comportamiento predeterminado de este método. | N/D |
CreateItemQueryWithOptions(QueryOptions) | Comportamiento predeterminado de este método si no se especifica ninguna de las siguientes opciones. O bien Especifique DefaultQuery como valor de CommonFileQuery o CommonFolderQuery al crear una instancia del objeto QueryOptions . O bien Especifique Superficial como valor de la propiedad FolderDepth del objeto QueryOptions . |
Para una carpeta de biblioteca, especifique un valor distinto de DefaultQuery como valor de CommonFileQuery o CommonFolderQuery al crear una instancia del objeto QueryOptions . O bien Para cualquier carpeta, especifique Deep como el valor de la propiedad FolderDepth de QueryOptions. |
Para obtener solo archivos, llame al método GetFilesAsync . Para obtener solo carpetas, llame al método GetFoldersAsync .
Consulte también
Se aplica a
GetItemsAsync(UInt32, UInt32)
Obtiene un intervalo de archivos y carpetas basados en índices de la lista de todos los archivos y subcarpetas de la carpeta actual.
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))
Parámetros
- startIndex
-
UInt32
unsigned int
uint32_t
Índice de base cero del primer elemento del intervalo que se va a obtener.
- maxItemsToRetrieve
-
UInt32
unsigned int
uint32_t
Número máximo de elementos que se van a obtener.
Devoluciones
Cuando este método se completa correctamente, devuelve una lista de los archivos y subcarpetas de la carpeta actual. La lista es de tipo IReadOnlyList<IStorageItem>. Cada elemento de la lista se representa mediante un objeto IStorageItem .
Para trabajar con los elementos devueltos, llame al método IsOfType de la interfaz IStorageItem para determinar si cada elemento es un archivo o una carpeta. A continuación, convierta el elemento en storageFolder o StorageFile.
Implementaciones
- Atributos
Excepciones
No tiene permiso para acceder al contenido de la carpeta actual. Para obtener más información, consulte Permisos de acceso a archivos.