Filsystem og stier per plattform
Les og skriv filer portabelt på tvers av målplattformer.
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(): StringAndroid bruker filesDir
Android-implementasjonen av actual returnerer context.filesDir.path, den private mappen systemet garanterer for appens filer.
actual fun dataDir(): String =
appContext.filesDir.pathiOS 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 StringBygg 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. 🎉
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
- Utform et capability-grensesnitt
- expect/actual for enhetsinformasjon
- Filsystem og stier per plattform
- Injiser plattformimplementasjoner