In un'applicazione WinRT abbiamo la possibilità di salvare file nella cartella Downloads dell'utente. Tali file vengono salvati in una sotto cartella con il nome dell'applicazione e sono accessibili solo all'applicazione stessa.
L'accesso a questa cartella avviene attraverso la classe DownloadsFolder di Windows.Storage; con il metodo CreateFileAsync possiamo creare un file, il cui nome può essere dichiarato come parametro e reso unico con una opzione in overload, come da esempio.
var newfile = await Windows.Storage.DownloadsFolder.CreateFileAsync("winrt.jpg", CreationCollisionOption.GenerateUniqueName);
using (StorageStreamTransaction transaction = await newfile.OpenTransactedWriteAsync())
{
using (var webStream = await new HttpClient().GetStreamAsync(new Uri("https://www.winrtitalia.com/winrt.jpg")))
{
await webStream.CopyToAsync(transaction.Stream.AsStreamForWrite());
webStream.Dispose();
}
await transaction.CommitAsync();
}Il metodo CreateFileAsync restituisce un oggetto di tipo StorageFile il cui stream può essere aperto in scrittura con il metodo OpenTransactedWriteAsync e successivamente con AsStreamForWrite della sua proprietà Stream.
Grazie a HttpClient e al suo GetStreamAsync possiamo aprire lo stream di una risorsa remota e riversare i relativi byte nello StorageFile.
Per completare la scrittura è importante chiudere lo stream con CommitAsync.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzo delle Feature flag in ASP.NET Core
Blue/Green Release in locale con .NET Aspire
Esporre tool MCP con Azure Functions
Integrare LLM alle nostre applicazioni in .NET con MCP
Mischiare codice server side e client side in una query LINQ con Entity Framework
Ricerca delle GitHub issue tramite operatori logici
Supporto nativo a JSON in SQL Server 2025
Configurare OpenTelemetry per Application Insights su ASP.NET Core
Impostare automaticamente l'altezza del font tramite CSS
Importare repository da Bitbucket a GitHub Enterprise Cloud
Evitare la compressione degli artefatti in un workflow di GitHub
Migrare applicazioni legacy nel cloud con Azure App Service Managed Instance


