Kotlin Multiplatform Academy · Oppitunti

Tiedostojärjestelmä ja polut alustoittain

Lue ja kirjoita tiedostoja siirrettävästi eri kohteissa.

Oppitunti 3/413 vaihetta

Tiedostojärjestelmä ja polut alustoittain on ilmainen Kotlin Multiplatform Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Kotlin Multiplatform Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Tiedostot sijaitsevat eri paikoissa

Android ja iOS tallentavat sovellustiedostot täysin eri kansioihin. Jaettu koodi tarvitsee siirrettävän tavan löytää turvallinen kirjoituspaikka. 📁

Ilmoita Paths expect

Lisätkää commonMainiin pieni expect-funktio, joka palauttaa sovelluksen tietohakemiston tavallisena String-polkuina.

expect fun dataDir(): String

Android käyttää filesDir-arvoa

Androidin actual palauttaa context.filesDir.path-arvon eli yksityisen kansion, jonka järjestelmä takaa sovelluksen tiedostoille.

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

iOS käyttää Documents-hakemistoa

iOS:n actual pyytää NSFileManagerilta Documents-hakemiston, joka on sovelluksen käyttäjätietojen vakiotallennuspaikka.

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

Muodosta polut, älä kovakoodaa niitä

Yhdistäkää hakemisto tiedostonimeen sen sijaan, että kirjoittaisitte polun sellaisenaan. Kovakoodatut polut, kuten /sdcard, rikkoutuvat heti, kun vaihdatte alustaa.

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

Pieni luku-/kirjoitus-API

Kapseloikaa myös lukeminen ja kirjoittaminen yhteisen interfacen taakse, jotta kutsujat voivat tallentaa tekstiä tuntematta alla olevaa alustaa.

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

Kirjoita jaetusta koodista

Yhteinen logiikka kutsuu storage.write-funktiota tietämättä tiedostoista tai kansioista. Alustan actual käsittelee levylle kirjoitettavat tavut.

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

Lue tiedot turvallisesti takaisin

Palauttakaa luettaessa nullable String, jotta puuttuvat tiedostot eivät aiheuta kaatumista. null tarkoittaa yksinkertaisesti, ettei tiedostoa ole vielä olemassa.

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

Pidä polut poissa toimialueelta

Liiketoimintasääntöjen ei pitäisi koskaan nähdä raakaa polkua. Piilottakaa kaikki hakemistojen yksityiskohdat ominaisuuden taakse, jotta toimialue pysyy siistinä.

Huomioi käyttöoikeudet ja hiekkalaatikot

Molemmat alustat eristävät sovelluksen tallennustilan hiekkalaatikkoon. Käyttäkää järjestelmän tarjoamia hakemistoja, niin vältätte käyttöoikeusvirheet kokonaan.

Käytä okioa varsinaiseen tiedostotyöhön

Vakavaan lukuun ja kirjoittamiseen monialustainen kirjasto, kuten okio, tarjoaa yhden FileSystem-APIn kaikille kohteille, joten voitte välttää suorat alustakutsut.

Pikatarkistus

Miettikää, mistä siirrettävä hakemistopolku saadaan.

Kertaus

Tarjositte siirrettävän dataDir-arvon expect/actual-rakenteen avulla, muodostitte polut niiden kovakoodaamisen sijaan ja piilotitte tiedostotyön pienen tallennusominaisuuden taakse. 🎉

Aloita maksutta

Opi Kotlin tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Tiedostojärjestelmä ja polut alustoittain” ilmainen?

Kyllä – oppitunnin ”Tiedostojärjestelmä ja polut alustoittain” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Kotlin Multiplatform Academy-kurssin, päivitä CoddyKit PROhon. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Tiedostojärjestelmä ja polut alustoittain”?

Lue ja kirjoita tiedostoja siirrettävästi eri kohteissa. Harjoittelet Kotlin Multiplatform Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kotlin Multiplatform Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Multiplatform Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Tiedostojärjestelmä ja polut alustoittain”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Multiplatform Academy-oppitunnilla?

Kyllä. Jokainen Kotlin Multiplatform Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Suunnittele capability-rajapinta
  2. expect/actual laitteen tietoja varten
  3. Tiedostojärjestelmä ja polut alustoittain
  4. Riippuvuusinjektoi alustatoteutukset
← Takaisin: Kotlin Multiplatform Academy