Tiedostojärjestelmä ja polut alustoittain
Lue ja kirjoita tiedostoja siirrettävästi eri kohteissa.
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(): StringAndroid 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.pathiOS 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 StringMuodosta 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. 🎉
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
- Suunnittele capability-rajapinta
- expect/actual laitteen tietoja varten
- Tiedostojärjestelmä ja polut alustoittain
- Riippuvuusinjektoi alustatoteutukset