Kotlin Multiplatform Academy · leksjon

Filsystem og stier per plattform

Les og skriv filer portabelt på tvers av målplattformer.

Leksjon 3 av 413 trinn

Filsystem og stier per plattform er en gratis leksjon i Kotlin Multiplatform Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Multiplatform Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Multiplatform Academy inneholder totalt 4 leksjoner.

Filer ligger på forskjellige steder

Android og iOS lagrer appfiler i helt forskjellige mapper. Delt kode trenger en portabel måte å finne et trygt sted å skrive på. 📁

Deklarer en paths-expect

Legg en liten expect-funksjon i commonMain som returnerer appens datakatalog som en vanlig String-sti.

expect fun dataDir(): String

Android bruker filesDir

Android-implementasjonen av actual returnerer context.filesDir.path, den private mappen systemet garanterer for appens filer.

actual fun dataDir(): String =
  appContext.filesDir.path

iOS bruker Documents-katalogen

iOS-implementasjonen av actual ber NSFileManager om Documents-katalogen, standardstedet der en app lagrer brukerdata.

actual fun dataDir(): String =
  NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, true
  ).first() as String

Bygg stier, ikke hardkod dem

Slå sammen katalogen med et filnavn i stedet for å skrive en bokstavelig sti. Hardkodede stier som /sdcard slutter å fungere så snart De bytter plattform.

val file = dataDir() + "/profile.json"

Et lite lese-/skrive-API

Pakk også lesing og skriving inn bak et delt grensesnitt, slik at kallere kan lagre tekst uten å vite hvilken plattform som ligger under.

interface Storage {
  fun write(name: String, text: String)
  fun read(name: String): String?
}

Skriv fra delt kode

Felles logikk kaller storage.write uten å vite noe om filer eller mapper. Plattformens actual-implementasjon håndterer de faktiske byte-ene på disken.

storage.write("profile.json", json)

Les det tilbake på en trygg måte

Returner en nullable String ved lesing, slik at manglende filer ikke fører til krasj. En null betyr ganske enkelt at filen ikke finnes ennå.

val saved = storage.read("profile.json")

Hold stier utenfor domenet

Forretningsreglene Deres bør aldri se en rå sti. Skjul alle katalogdetaljer bak funksjonen, slik at domenet forblir ryddig.

Ta hensyn til tillatelser og sandkasser

Begge plattformer legger app-lagring i en sandkasse. Hold Dem til katalogene systemet gir Dem, så unngår De tillatelsesfeil helt.

Bruk okio til reelt filarbeid

For omfattende lesing og skriving gir et multiplattformbibliotek som okio ett FileSystem-API på tvers av mål, slik at De slipper rå plattformkall.

Hurtigsjekk

Tenk over hvor en portabel katalogsti kommer fra.

Oppsummering

De eksponerte en portabel dataDir via expect/actual, bygde stier i stedet for å hardkode dem, og skjulte filarbeidet bak en liten lagringsfunksjon. 🎉

Gratis å komme i gang

Lær deg Kotlin med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Filsystem og stier per plattform» gratis?

Ja – hele teksten i «Filsystem og stier per plattform» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Kotlin Multiplatform Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Kotlin Multiplatform Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Filsystem og stier per plattform»?

Les og skriv filer portabelt på tvers av målplattformer. Du øver på Kotlin Multiplatform Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Kotlin Multiplatform Academy?

Ingen tidligere erfaring er nødvendig. Kotlin Multiplatform Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Filsystem og stier per plattform»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Kotlin Multiplatform Academy-leksjonen?

Ja. Alle Kotlin Multiplatform Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Utform et capability-grensesnitt
  2. expect/actual for enhetsinformasjon
  3. Filsystem og stier per plattform
  4. Injiser plattformimplementasjoner
← Tilbake til Kotlin Multiplatform Academy