in

DotNetSide

Dot Net South Italy Developers User Group

Tips

November 2010 - Posts

  • Copiare file nello storage di Windows Phone 7

    Autore : Vito Arconzo

    In molte occasioni, durante lo sviluppo di applicazioni per Windows Phone 7, abbiamo la necessita di copiare file che possono arrivare da sorgenti diverse sia web che locali nello storage del dispositivo. Le API di Windows Phone 7 ci mettono a disposizione (come per Silverlight) un spazio dedicato ed esclusivo all’app che lo utilizza senza, ovviamente, la possibilità di accedervi ad altre applicazioni.

    Non avendo un vero e proprio File System e non potendo quindi usare le solite funzionalità di copia del namespace System.IO.File etc… possiamo usare il codice seguente che fa uso di un stream che legge dalla sorgente e scrivo il risultato nello storage.

     

    IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
    
    using (IsolatedStorageFileStream fs = new IsolatedStorageFileStream("data.xml", FileMode.Create, FileAccess.Write, store))
    {
    	if (!store.FileExists("data.xml"))
    	{
    		StreamResourceInfo sri = Application.GetResourceStream(new Uri("data.xml", UriKind.Relative));
    		byte[] bytesInStream = new byte[sri.Stream.Length];
    		sri.Stream.Read(bytesInStream, 0, (int)bytesInStream.Length);
    
    		fs.Write(bytesInStream, 0, bytesInStream.Length);
    		fs.Flush();
    	}
    }
Powered by Community Server (Commercial Edition), by Telligent Systems