StorageFolder.GetItemsAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
GetItemsAsync() |
Ottiene i file e le sottocartelle nella cartella corrente. |
GetItemsAsync(UInt32, UInt32) |
Ottiene un intervallo basato su indici di file e cartelle dall'elenco di tutti i file e le sottocartelle nella cartella corrente. |
GetItemsAsync()
Ottiene i file e le sottocartelle nella cartella corrente.
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))
Restituisce
Al termine di questo metodo, restituisce un elenco dei file e delle cartelle nella cartella corrente. L'elenco è di tipo IReadOnlyList<IStorageItem>. Ogni elemento nell'elenco è rappresentato da un oggetto IStorageItem .
Per usare gli elementi restituiti, chiamare il metodo IsOfType dell'interfaccia IStorageItem per determinare se ogni elemento è un file o una cartella. Eseguire quindi il cast dell'elemento in un oggetto StorageFolder o StorageFile.
Implementazioni
- Attributi
Eccezioni
Non si dispone dell'autorizzazione per accedere al contenuto della cartella corrente. Per altre informazioni, vedere Autorizzazioni di accesso ai file.
Esempio
Nell'esempio seguente viene illustrato come ottenere i file e le sottocartelle nella cartella corrente chiamando il metodo 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());
}
}
});
Commenti
Nella tabella seguente sono elencati i metodi della classe StorageFolder che ottengono un elenco di file e cartelle. La tabella identifica query superficiali che restituiscono solo elementi dalla cartella corrente e query profonde che restituiscono elementi dalla cartella corrente e dalle relative sottocartelle.
Per ottenere risultati di query approfonditi da una cartella che non è una cartella di libreria, chiamare il metodo CreateItemQueryWithOptions(QueryOptions) e specificare Deep come valore della proprietà FolderDepth dell'oggetto QueryOptions .
Metodo | Creare una query superficiale che restituisce solo elementi dalla cartella corrente | Creare una query approfondita che restituisce elementi dalla cartella corrente e dalle relative sottocartelle |
---|---|---|
GetItemsAsync() | Comportamento predefinito di questo metodo. | N/D |
GetItemsAsync(UInt32, UInt32) | Comportamento predefinito di questo metodo. | N/D |
CreateItemQuery() | Comportamento predefinito di questo metodo. | N/D |
CreateItemQueryWithOptions(QueryOptions) | Comportamento predefinito di questo metodo se non sono specificate le opzioni seguenti. - oppure - Specificare DefaultQuery come valore di CommonFileQuery o CommonFolderQuery quando si crea un'istanza dell'oggetto QueryOptions . - oppure - Specificare Shallow come valore della proprietà FolderDepth dell'oggetto QueryOptions . |
Per una cartella di libreria, specificare un valore diverso da DefaultQuery come valore di CommonFileQuery o CommonFolderQuery quando si crea un'istanza dell'oggetto QueryOptions. - oppure - Per qualsiasi cartella, specificare Deep come valore della proprietà FolderDepth di QueryOptions. |
Per ottenere solo file, chiamare il metodo GetFilesAsync . Per ottenere solo cartelle, chiamare il metodo GetFoldersAsync .
Vedi anche
Si applica a
GetItemsAsync(UInt32, UInt32)
Ottiene un intervallo basato su indici di file e cartelle dall'elenco di tutti i file e le sottocartelle nella cartella corrente.
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))
Parametri
- startIndex
-
UInt32
unsigned int
uint32_t
Indice in base zero del primo elemento nell'intervallo da ottenere.
- maxItemsToRetrieve
-
UInt32
unsigned int
uint32_t
Numero massimo di elementi da ottenere.
Restituisce
Al termine di questo metodo, restituisce un elenco dei file e delle sottocartelle nella cartella corrente. L'elenco è di tipo IReadOnlyList<IStorageItem>. Ogni elemento nell'elenco è rappresentato da un oggetto IStorageItem .
Per usare gli elementi restituiti, chiamare il metodo IsOfType dell'interfaccia IStorageItem per determinare se ogni elemento è un file o una cartella. Eseguire quindi il cast dell'elemento in un oggetto StorageFolder o StorageFile.
Implementazioni
- Attributi
Eccezioni
Non si dispone dell'autorizzazione per accedere al contenuto della cartella corrente. Per altre informazioni, vedere Autorizzazioni di accesso ai file.