Working Med Isolert Lagring på Windows Phone 8
28
Del
7
Del
Dette Cyber Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Isolert lagringsplass som brukes til å lagre lokale data på en Windows Phone. Det er "isolert" fordi andre programmer ikke får tilgang til disse dataene. I denne opplæringen vil du få en oversikt over isolert lagring og lær hvordan du kan bruke den til å lagre data mer sikkert på Windows Phone 8.
Mobil arkitektur isolert lagring ligner på Silverlight-baserte applikasjoner på Windows. Alle I /O-operasjoner er begrenset til isolerte lagring og ikke har direkte tilgang til det underliggende OS filsystem, noe som bidrar til å gi sikkerhet og hindrer uautorisert tilgang og data korrupsjon fra andre apps. Hvis du ønsker å dele data mellom to programmer, vil du trenger noen form for cloud-basert tjeneste som kan dele disse dataene for deg.
Den lokale mappe er rotmappen appens datalageret. Det er to måter å lagre data lokalt. Den første måten er gjennom en samling av navn /verdi-par som kalles IsolatedStorageSettings. Den andre måten er gjennom etableringen av faktiske filer og mapper kalt IsolatedStorageFile. Her er et par ting verdt å nevne om isolert lagring:
Isolert lagring bruker tillatelse kvoter, som er lagring grenser satt av IsolatedStoragePermission gjenstander
Hvis du prøver å skrive data som overstiger den. kvote, er en IsolatedStorageException unntak kastet.
IsolatedStorageFilePermission avgjør om det skal gis tillatelse til filen eller katalogen.
1. URI Ordninger
Bruk isostore eller ms-appdata URI ordningen navn når du adresserer den lokale mappen i en bane. Begge disse URI mønstrene kan du få tilgang til lokal mappe, men de kan ikke brukes om hverandre. ms-appdata brukes til å adressere roten av lokal mappe med APIer, mens isostore brukes til å adressere roten av lokal mappe. Det følgende eksempel viser dette.
//Opprett en lokal database i den lokale mappen med isostore URI scheme.MyDataContext db = new MyDataContext ("isostore: /mydb.sdf"); //Få en fil fra den lokale mappen med ms-appdata URI scheme.var file = avvente Windows.StorageFile.GetFileFromApplicationUriAsync (ny Uri ("ms-appdata: ///local/AppConfigSettings.xml"));
ms-appdata krever tre skråstreker (///) og isostore krever bare én skråstrek (/). Den totale lengden på banen for noen av de to URI ordninger kan ikke overstige 185 tegn.
2. IsolatedStorageSettings
Den enkleste måten å legge data inn i isolert lagring er å bruke IsolatedStorageSettings klassen, som er en ordbok < TKey, TValue > som lagrer nøkkelverdipar i isolert lagring. IsolatedStorageSettings brukes vanligvis til å lagre innstillinger, for eksempel antall bilder å vise per side, sideoppsett, og så videre. De er lagret i IsolatedStorageSettings data vedvarer over programmet starter.
Hvis du bare ønsker å lagre informasjon om innstillinger som brukernavn = "Fred", så kan du bruke de ApplicationSettings objekt i isolert lagring. Den brukes på samme måte som du ville bruke en ordbok. Den saveString metoden kan brukes til å lagre en strengverdi melding om nøkkelen navn
annullere saveString (streng beskjed, string navn) {IsolatedStorageSettings.ApplicationSettings [navn] = meldingen.; IsolatedStorageSettings.ApplicationSettings.Save ();}
Lagrings fungerer som en ordbok, men husk å ringe Lagre når du er ferdig med å legge nøklene
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 (string navn) {if (IsolatedStorageSettings.ApplicationSettings.Contains (navn)) {return (string) IsolatedStorageSettings.ApplicationSettings [name]; } Else {return null;}}
Test om nøkkelen finnes før du prøver å finne den. Hvis du prøver å få verdien for en nøkkel som ikke finnes, et unntak vil bli kastet.
En god praksis er å skape en spesiell statisk klasse, som inneholder programmets innstillinger. Dette gjør det enkelt å få tilgang til en eiendom i søknaden din til enhver tid.
Hvis du arbeider på en Universal Windows app prosjektet, deretter bruke IsolatedStorageSettings.ApplicationSettings vil gi en syntaksfeil. Du må erstatte den med Windows.Storage.ApplicationData.Current.LocalSettings.
3. IsolatedStorageFile
IsolatedStorageFile er mekanismen som du kan bruke til å lagre filer på brukerens enhet. Du kan utføre ulike operasjoner på den isolerte lagring, som å opprette mapper og filer, skrive til en fil, lese data, fjerne filer, etc.
Disse filene og mappene er ikke tilgjengelige for andre programmer som er installert på brukerens enhet. Den IsolatedStorageFileStream klassen brukes til å lese, skrive og opprette filer i isolert lagring. Denne klassen strekker Filestream, som betyr at du kan bruke en forekomst av IsolatedStorageFileStream i de fleste situasjoner der en Filestream eksempel ellers kunne brukes, for eksempel for å konstruere en StreamReader eller Stream.
skriving til en fil
Følgende kodebiten viser deg hvordan du kan skrive til en fil i isolert lagring. Den saveGameToIsolatedStorage funksjonen lager en ny fil i isolerte lagring og sparer strengen budskapet i den.
Private void saveGameToIsolatedStorage (string melding) {bruker (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication ()) {bruker (IsolatedStorageFileStream rawStream = isf.CreateFile ( "MyFile.store")) {Stream forfatter = new Stream (rawStream); writer.WriteLine (melding); //Lagre meldingen writer.Close (); }}}
Leser fra en fil
loadString Funksjonen leser og returnerer teksten i filen. Funksjonen bruker FileExists å først sjekke om filen finnes i isolert lagring. Den bruker deretter en forekomst av StreamReader å lese filen
private string loadString () {string resultat = null.; bruker (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication ()) {if (isf.FileExists ("Myfile.store") {bruker (IsolatedStorageFileStream rawStream = isf.OpenFile (filnavn, System.IO.FileMode.Open)) {StreamReader leser = new StreamReader (rawStream), resultat = reader.ReadLine (); reader.Close ();}}} avkastning resultat;}
Isolert lagring er ikke tilgjengelig for Windows Store apps I stedet bruker de programdata klasser i Windows.. Lagring navnerom inkludert i Windows Runtime API for å lagre lokale data og filer.
Det er anbefalt å disponere av forekomster av IsolatedStorageFile og IsolatedStorageFileStream når de ikke lenger er nødvendig. Har hjelp statement dette automatisk for deg og bruken er ansett som en god praksis.
skrev til en eksisterende fil
For å skrive over innholdet i en eksisterende fil, kan du bruke en forekomst av Stream klassen til å åpne filen. Parametrene FileMode.Open og FileAccess.Write sendes til åpne filen med skrivetilgang. Dette vil overskrive eksisterende innhold med nye data
IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication ();. If (myIsolatedStorage.FileExists (filnavn)) {bruker (Streamwritefile = new Stream (ny IsolatedStorageFileStream (filnavn, FileMode.Open, FileAccess -write, myIsolatedStorage))) {string someTextData = "Lær å kode ved hjelp Tuts +"; writeFile.WriteLine (someTextData); writeFile.Close ();}}
føye til en eksisterende fil
Legge data til en eksisterende fil er svært lik skrive data til en eksisterende fil. Den eneste endringen som trengs er å sette filen modus til FileMode.Append
IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication ();. If (myIsolatedStorage.FileExists (filnavn)) {if (myIsolatedStorage.FileExists (filnavn)) {bruker (Streamwritefile = new Stream (ny IsolatedStorageFileStream (filnavn, FileMode.Append, FileAccess.Write, myIsolatedStorage))) {string someTextData = "Bruk Tuts + å lære kreative ferdigheter, Shape Your Future"; writeFile.WriteLine (someTextData); writeFile.Close (); }}}
Slette en tekstfil
For å slette en tekstfil, vi først sjekke om tekstfilen finnes i isolerte lagring og bruk deretter DeleteFile å slette filen.
IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile. GetUserStoreForApplication (); if (myIsolatedStorage.FileExists (filnavn)) {myIsolatedStorage.DeleteFile (filnavn);}
Jeg oppfordrer deg til å utforske prøven anvendelsen av denne opplæringen for å se hvordan du skal lese, skrive og legge data til en fil .
4. Isolert Storage Explorer
Mens debugging et program, må du kanskje sjekke filer og mapper som er lagret i appens isolert 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 å få tilgang til den isolerte lagring av apps.
Et annet alternativ er å bruke Isolert Storage Explorer eller ISETool, en kommando linje verktøyet installert sammen med Windows Phone SDK. Du kan bruke ISETool å liste, kopiere og erstatte filer og kataloger i appens lokal mappe
ISETool kan brukes med hvilken som helst enhet eller emulator, og er vanligvis installert på følgende sted:.
< p> Program Files (x86) \\ MicrosoftSDKs \\ WindowsPhone \\ v8.0 \\ Tools \\ IsolatedStorageExplorerTool
Her er et par ting som er verdt å merke seg når du bruker ISETool:
Appen må installeres på emulator eller enheten.
Den emulator eller enheten må låses opp, men app trenger ikke å være i gang.
Du får ikke tilgang til isolerte lagring av apps installeres fra . Windows Phone Store-
Du kan ikke vise innstillingene som er lagret ved hjelp av IsolatedStorageSettings klassen bruker ISETool
For å bruke ISETool, må du bruke følgende syntaks:.
ISETool. exe < cmd [: param] > < target-enhet [: param] > < produkt-id > [< desktop-banen >]
Her er et par ting som kan gjøres ved hjelp av ISETool
Kopiere filer fra isolerte Storage til datamaskin
Distribuer appen deg. ønsker å teste til emulator eller en enhet, og skape lokale filer og kataloger.
Få app-ID fra ProductID egenskap av app element i WMAppManifest.xml filen.
Naviger til ISETool.exe bruke ledeteksten, og kjør følgende kommando for å kopiere alle filene fra appens isolerte lagringsplass til datamaskinen
ISETool.exe ts xd f8ce6878-0aeb-497f-bcf4-65be961d4bba c:. \\ data \\ MyFiles
Skifte filer i Isolert Storage
Gjenta de forrige tre trinnene og bruke følgende kommando for å erstatte filer i appens isolert lagring
ISETool.exe rs xd f8ce6878-0aeb-497f-bcf4-65be961d4bba. "C: \\ Data \\ Mine filer" < p> Hvis du ønsker å lære mer om ISETool, foreslår jeg at du leser en annen artikkel jeg skrev om bruk av ISETool.
Konklusjon
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 nås av andre programmer. Isolert lagring er nyttig i mange situasjoner. Føl deg fri til å laste ned opplæringen er kildefilene til å bruke som en referanse.