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
Ottimizzare le performance usando Span<T> e il metodo Split
Utilizzare l nesting nativo dei CSS
Combinare Container Queries e Media Queries
Selettore CSS :has() e i suoi casi d'uso avanzati
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Loggare le query più lente con Entity Framework
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Ordine e importanza per @layer in CSS
Utilizzare Container Queries nominali
Eseguire i worklow di GitHub su runner potenziati
Utilizzare Hybrid Cache in .NET 9
Configurare e gestire sidecar container in Azure App Service
I più letti di oggi
- Eseguire una chiamata AJAX per inviare dati al server in Angular 2
- Formati per l'impostazione del colore in CSS3
- la Call For Papert per #netconfit è aperta!invia la tua sessione da https://aspit.co/netconfit-20 puoi parlare di #net5, #aspnet5, #efcore5, #CSharp9 e tutto quello che ruota intorno a #dotnet.
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Impostare un riferimento ad una entity collegata tramite foreign key