Isolert lagring brukes til å lagre lokale data på en Windows Phone. Det er "isolert" fordi andre applikasjoner ikke har tilgang til disse dataene. I denne opplæringen får du en oversikt over isolert lagringsplass og lær hvordan du kan bruke den til å lagre data mer sikkert på Windows Phone 8.
Den mobile arkitekturen for isolert lagring ligner Silverlight-baserte applikasjoner på Windows. Alle I / O-operasjoner er begrenset til isolert lagring og har ikke direkte tilgang til det underliggende OS-filsystemet, noe som bidrar til å gi sikkerhet og forhindrer uautorisert tilgang og dataforstyrrelser fra andre apper. Hvis du vil dele data mellom to programmer, trenger du en slags skybasert tjeneste som kan dele dataene for deg.
Den lokale mappen er rotmappen til appens datalager. Det er to måter å lagre data lokalt på. Den første måten er gjennom en samling av navn / verdi par kalt IsolatedStorageSettings
. Den andre veien er gjennom opprettelsen av faktiske filer og mapper som heter IsolatedStorageFile
. Her er noen ting verdt å nevne om isolert lagring:
IsolatedStoragePermission
objekter.IsolatedStorageException
unntak kastes.IsolatedStorageFilePermission
bestemmer om å gi tillatelse til filen eller katalogen. Bruke isostore
eller ms-appdata
URI-systemnavn når du adresserer den lokale mappen i en bane. Begge disse URI-ordningene gir deg tilgang til den lokale mappen, men de kan ikke brukes om hverandre. ms-appdata
brukes til å adressere roten til den lokale mappen med APIer, mens isostore
brukes til å adressere roten til den lokale mappen. Følgende eksempel demonstrerer dette.
// Opprett en lokal database i den lokale mappen med isostore URI-ordningen. MyDataContext db = ny MyDataContext ("isostore: /mydb.sdf"); // Hent en fil fra den lokale mappen med ms-appdata URI-ordningen. var file = avvente Windows.StorageFile.GetFileFromApplicationUriAsync (ny Uri ("ms-appdata: ///local/AppConfigSettings.xml"));
ms-appdata
krever tre skråstreker (///
) og isostore
krever bare ett skråstrek (/
). Den totale lengden på banen for noen av de to URI-ordningene kan ikke overstige 185 tegn.
IsolatedStorageSettings
Den enkleste måten å sette data i isolert lagring er å bruke IsolatedStorageSettings
klassen, som er en Ordbok
som lagrer nøkkelverdige par i isolert lagring. IsolatedStorageSettings
brukes vanligvis til å lagre innstillinger, for eksempel antall bilder som skal vises per side, alternativer for sidelayout og så videre. Dataene lagret i IsolatedStorageSettings
fortsetter på tvers av programlanseringer.
Hvis du bare vil lagre innstillingsinformasjon som Brukernavn = "Fred"
, så kan du bruke Applikasjon innstillinger
objekt i isolert lagring. Den brukes på samme måte som du ville bruke en ordbok. De saveString
Metoden kan brukes til å lagre en strengverdi budskap
for nøkkelen Navn
.
void saveString (strengmelding, strengnavn) IsolatedStorageSettings.ApplicationSettings [name] = message; IsolatedStorageSettings.ApplicationSettings.Save ();
Lagringen fungerer som en ordbok, men husk å ringe Lagre
når du er ferdig med å legge til nøkler.
For å hente verdier fra innstillinger, kan du bruke loadString
metode som tar nøkkelen til de lagrede innstillingene som en parameter og returnerer verdien hvis nøkkelen eksisterer.
string loadString (strengnavn) if (IsolatedStorageSettings.ApplicationSettings.Contains (navn)) return (string) IsolatedStorageSettings.ApplicationSettings [name]; ellers return null;
Test om nøkkelen eksisterer før du prøver å finne den. Hvis du prøver å få verdien for en nøkkel som ikke eksisterer, vil et unntak kastes.
En god praksis er å lage en spesiell statisk klasse, som inneholder programmets innstillinger. Dette gjør det enkelt å få tilgang til enhver eiendom i søknaden din når som helst.
Hvis du jobber med et Universal Windows app-prosjekt, bruker du IsolatedStorageSettings.ApplicationSettings
vil gi en syntaksfeil. Du må erstatte den med Windows.Storage.ApplicationData.Current.LocalSettings
.
IsolatedStorageFile
IsolatedStorageFile
er mekanismen som du kan bruke til å lagre filer på en brukers enhet. Du kan utføre ulike operasjoner på den isolerte lagringen, for eksempel å lage mapper og filer, skrive til en fil, lese data, fjerne filer osv..
Disse filene og mappene er ikke tilgjengelige for andre programmer installert på brukerens enhet. De IsolatedStorageFileStream
klassen brukes til å lese, skrive og lage filer i isolert lagring. Denne klassen strekker seg Filestream
, som betyr at du kan bruke en forekomst av IsolatedStorageFileStream
i de fleste situasjoner hvor a Filestream
Eksempel kan ellers brukes, for eksempel å konstruere en StreamReader
eller Stream
.
Følgende kodestykke viser deg hvordan du skriver til en fil i isolert lagring. De saveGameToIsolatedStorage
funksjonen lager en ny fil i isolert lagring og lagrer strengen budskap
i det.
private void saveGameToIsolatedStorage (strengmelding) using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication ()) bruker (IsolatedStorageFileStream rawStream = isf.CreateFile ("MyFile.store")) StreamWriter writer = new StreamWriter (rawStream); writer.WriteLine (melding); // lagre meldingen writer.Close ();
De loadString
funksjonen leser og returnerer teksten i filen. Funksjonen bruker Filen eksisterer
For å først sjekke om filen finnes i isolert lagring. Det bruker så en forekomst av StreamReader
å lese filen.
privat streng loadString () string result = null; bruker (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication ()) if (isf.FileExists ("Myfile.store") bruker (IsolatedStorageFileStream rawStream = isf.OpenFile (filnavn, System.IO.FileMode.Open)) StreamReader Reader = new StreamReader (rawStream); result = reader.ReadLine (); reader.Close (); returresultat;
Isolert lagring er ikke tilgjengelig for Windows Store-apper. I stedet bruker du programdata klassene i Windows.Storage
namespaces inkludert i Windows Runtime API for å lagre lokale data og filer.
Det anbefales å disponere forekomstene av IsolatedStorageFile
og IsolatedStorageFileStream
når de ikke lenger er nødvendig. De ved hjelp av
uttalelse gjør dette automatisk for deg og dets bruk som en god praksis.
For å overskrive innholdet i en eksisterende fil, bruk en forekomst av Stream
klasse for å åpne filen. Parametrene FileMode.Open
og FileAccess.Write
blir sendt for å åpne filen med skriveadgang. Dette vil overskrive eksisterende innhold med nye data.
IsolatedStorageFile myIsolatedStorage = IsolertStorageFile.GetUserStoreForApplication (); hvis (myIsolatedStorage.FileExists (filnavn)) using (StreamWriter writeFile = new StreamWriter (new IsolatedStorageFileStream (filnavn, FileMode.Open, FileAccess.Write, myIsolatedStorage))) string someTextData = "Lær å kode ved hjelp av Tuts +"; writeFile.WriteLine (someTextData); writeFile.Close ();
Hvis du legger til data i en eksisterende fil, ligner det meget på å skrive data til en eksisterende fil. Den eneste endringen som trengs er å sette filmodus til FileMode.Append
.
IsolatedStorageFile myIsolatedStorage = IsolertStorageFile.GetUserStoreForApplication (); hvis (myIsolatedStorage.FileExists (filnavn)) if (myIsolatedStorage.FileExists (filnavn)) using (StreamWriter writeFile = new StreamWriter (nye IsolatedStorageFileStream (filnavn, FileMode.Append, FileAccess.Write, myIsolatedStorage))) string someTextData = " Bruk Tuts + for å lære kreative ferdigheter, form din fremtid "; writeFile.WriteLine (someTextData); writeFile.Close ();
For å slette en tekstfil, kontrollerer vi først om tekstfilen finnes i isolert lagring og bruk deretter Slett fil
for å slette filen.
IsolatedStorageFile myIsolatedStorage = IsolertStorageFile.GetUserStoreForApplication (); hvis (myIsolatedStorage.FileExists (filnavn)) myIsolatedStorage.DeleteFile (filnavn);
Jeg oppfordrer deg til å utforske prøveapplikasjonen for denne opplæringen for å se hvordan du leser, skriver og legger til data i en fil.
Mens du feilsøker et program, kan det hende du må sjekke filene og mappene som er lagret i appens isolerte lagring for å kontrollere at de riktige filene blir lagret på riktig sted. Emulatorer og enheter som kjører Windows Phone 8 eller lavere, kan bruke Windows Phone Power Tools, som er et GUI-basert verktøy for tilgang til den isolerte lagringen av apper.
Et annet alternativ er å bruke Isolert Storage Explorer eller ISETool, et kommandolinjeverktøy installert sammen med Windows Phone SDK. Du kan bruke ISETool til å liste, kopiere og erstatte filer og kataloger i appens lokale mappe.
ISETool kan brukes med en hvilken som helst enhet eller emulator, og installeres vanligvis på følgende sted:
Program Files (x86) \ MicrosoftSDKs \ Windows Phone \ v8.0 \ Tools \ IsolatedStorageExplorerTool
Her er noen ting verdt å merke seg når du bruker ISETool:
IsolatedStorageSettings
klasse ved hjelp av ISETool.For å bruke ISETool må du bruke følgende syntaks:
ISETool.exe[ ]
Her er et par ting som kan gjøres ved hjelp av ISETool.
ISETool.exe ts xd f8ce6878-0aeb-497f-bcf4-65be961d4bba c: \ data \ myfiles
Gjenta de tre foregående trinnene, og bruk følgende kommando for å erstatte filer i appens isolerte lagring.
ISETool.exe rs xd f8ce6878-0aeb-497f-bcf4-65be961d4bba "C: \ Data \ Mine filer"
Hvis du vil lære mer om ISETool, foreslår jeg at du leser en annen artikkel jeg skrev om bruken av ISETool.
Vi har to enkle mekanismer tilgjengelig på Windows Phone, IsolatedStorageSettings
og IsolatedStorageFile
. Isolert lagring representerer et lagringsområde som inneholder filer og kataloger som ikke kan åpnes av andre applikasjoner. Isolert lagring er nyttig i mange situasjoner. Du er velkommen til å laste ned opplærings kildefiler for å bruke som referanse.