Manipularea fișierelor și dosarelor
Introducere
În codul de backend poliglot al platformei Netuno, putem manipula orice fișier sau dosar.
Manipularea constă în a putea crea, redenumi și șterge fișiere și dosare, modifica conținutul fișierelor și lista conținutul dosarelor. În general, acestea sunt operațiile pe care de obicei trebuie să le facem programatic.
În platforma Netuno există resurse de programare low-code care permit manipularea dosarelor și fișierelor interne ale aplicației, dar și a oricăror fișiere și dosare din sistem în general, adică în afara aplicației.
Este util când trebuie să automatizăm un proces care necesită să intervină asupra unui fișier oarecare; să vedem cum.
Resursele de programare poliglotă low-code care permit manipularea fișierelor sunt:
_app- Aplicație_storage- Storage_os- Sistem de operare
Prin aceste resurse avem metodele pentru:
.file- Fișier existent..folder- Dosar existent..path- Cale generică, poate fi fie un fișier, fie un dosar, care există sau nu există.
Cu aceste metode obținem un obiect de tipul File, care oferă toate mijloacele pentru manipularea fișierelor, dosarelor și căilor în general, ceea ce permite realizarea operațiilor precum:
- Crearea de fișiere și dosare.
- Ștergerea fișierelor și dosarelor.
- Listarea conținutului dosarelor.
- Redenumirea fișierelor și dosarelor.
- Citirea și scrierea datelor în fișiere.
- Ștergerea dosarelor și a subdosarelor și fișierelor lor în mod recursiv.
Aplicație
Pentru a realiza operațiile principale de manipulare a fișierelor și dosarelor din structura aplicației,
folosim resursa _app:
Dosare în aplicație
Asigură obținerea unui dosar existent, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const dosarulMeu = _app.folder("dosar/principal")
const dosarulMeu = _app.folder("dosar/principal")
dosarulMeu = _app.folder("dosar/principal")
dosarulMeu = _app.folder("dosar/principal")
val dosarulMeu = _app.folder("dosar/principal")
final dosarulMeu = _app.folder("dosar/principal")
Fișiere în aplicație
Asigură obținerea unui fișier existent, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const fisierulMeu = _app.file("dosar/principal/fisier.txt")
const fisierulMeu = _app.file("dosar/principal/fisier.txt")
fisierulMeu = _app.file("dosar/principal/fisier.txt")
fisierulMeu = _app.file("dosar/principal/fisier.txt")
val fisierulMeu = _app.file("dosar/principal/fisier.txt")
final fisierulMeu = _app.file("dosar/principal/fisier.txt")
Căi în aplicație
Obține o cale de fișier sau dosar, indiferent dacă există sau nu, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const fisierNou = _app.path("dosar/principal/fisier-nou.txt")
const fisierNou = _app.path("dosar/principal/fisier-nou.txt")
fisierNou = _app.path("dosar/principal/fisier-nou.txt")
fisierNou = _app.path("dosar/principal/fisier-nou.txt")
val fisierNou = _app.path("dosar/principal/fisier-nou.txt")
final fisierNou = _app.path("dosar/principal/fisier-nou.txt")
Storage
Pentru a realiza operațiile principale de manipulare a fișierelor și dosarelor din dosarul 📁 storage al aplicației,
folosim resursa _storage:
Dosare în Storage
Asigură obținerea unui dosar existent, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// Calea reală a dosarului va fi:
// storage/filesystem/server/dosar/principal
const storageDosarulMeu = _storage.filesystem("server", "dosar/principal")
const dosarulMeu = storageDosarulMeu.folder()
// Calea reală a dosarului va fi:
// storage/filesystem/server/dosar/principal
const storageDosarulMeu = _storage.filesystem("server", "dosar/principal")
const dosarulMeu = storageDosarulMeu.folder()
# Calea reală a dosarului va fi:
# storage/filesystem/server/dosar/principal
storageDosarulMeu = _storage.filesystem("server", "dosar/principal")
dosarulMeu = storageDosarulMeu.folder()
# Calea reală a dosarului va fi:
# storage/filesystem/server/dosar/principal
storageDosarulMeu = _storage.filesystem("server", "dosar/principal")
dosarulMeu = storageDosarulMeu.folder()
// Calea reală a dosarului va fi:
// storage/filesystem/server/dosar/principal
val storageDosarulMeu = _storage.filesystem("server", "dosar/principal")
val dosarulMeu = storageDosarulMeu.folder()
// Calea reală a dosarului va fi:
// storage/filesystem/server/dosar/principal
final storageDosarulMeu = _storage.filesystem("server", "dosar/principal")
final dosarulMeu = storageDosarulMeu.folder()
Fișiere în Storage
Asigură obținerea unui fișier existent, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// Calea reală a fișierului va fi:
// storage/filesystem/server/dosar/principal/fisier.txt
const storageFisier = _storage.filesystem("server", "dosar/principal", "fisier.txt")
const fisier = storageFisier.file()
// Calea reală a fișierului va fi:
// storage/filesystem/server/dosar/principal/fisier.txt
const storageFisier = _storage.filesystem("server", "dosar/principal", "fisier.txt")
const fisier = storageFisier.file()
# Calea reală a fișierului va fi:
# storage/filesystem/server/dosar/principal/fisier.txt
storageFisier = _storage.filesystem("server", "dosar/principal", "fisier.txt")
fisier = storageFisier.file()
# Calea reală a fișierului va fi:
# storage/filesystem/server/dosar/principal/fisier.txt
storageFisier = _storage.filesystem("server", "dosar/principal", "fisier.txt")
fisier = storageFisier.file()
// Calea reală a fișierului va fi:
// storage/filesystem/server/dosar/principal/fisier.txt
val storageFisier = _storage.filesystem("server", "dosar/principal", "fisier.txt")
val fisier = storageFisier.file()
// Calea reală a fișierului va fi:
// storage/filesystem/server/dosar/principal/fisier.txt
final storageFisier = _storage.filesystem("server", "dosar/principal", "fisier.txt")
final fisier = storageFisier.file()
Căi în Storage
Obține o cale de fișier sau dosar, indiferent dacă există sau nu, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// Calea reală a noului dosar va fi:
// storage/filesystem/server/dosar/dosar-nou
const storageDosar = _storage.filesystem("server", "dosar/dosar-nou")
const dosar = storageDosar.path()
// Calea reală a noului fișier va fi:
// storage/filesystem/server/dosar/principal/fisier-nou.txt
const storageFisier = _storage.filesystem("server", "dosar/principal", "fisier-nou.txt")
const fisier = storageFisier.path()
// Calea reală a noului dosar va fi:
// storage/filesystem/server/dosar/dosar-nou
const storageDosar = _storage.filesystem("server", "dosar/dosar-nou")
const dosar = storageDosar.path()
// Calea reală a noului fișier va fi:
// storage/filesystem/server/dosar/principal/fisier-nou.txt
const storageFisier = _storage.filesystem("server", "dosar/principal", "fisier-nou.txt")
const fisier = storageFisier.path()
# Calea reală a noului dosar va fi:
# storage/filesystem/server/dosar/dosar-nou
storageDosar = _storage.filesystem("server", "dosar/dosar-nou")
dosar = storageDosar.path()
# Calea reală a noului fișier va fi:
# storage/filesystem/server/dosar/principal/fisier-nou.txt
storageFisier = _storage.filesystem("server", "dosar/principal", "fisier-nou.txt")
fisier = storageFisier.path()
# Calea reală a noului dosar va fi:
# storage/filesystem/server/dosar/dosar-nou
storageDosar = _storage.filesystem("server", "dosar/dosar-nou")
dosar = storageDosar.path()
# Calea reală a noului fișier va fi:
# storage/filesystem/server/dosar/principal/fisier-nou.txt
storageFisier = _storage.filesystem("server", "dosar/principal", "fisier-nou.txt")
fisier = storageFisier.path()
// Calea reală a noului dosar va fi:
// storage/filesystem/server/dosar/dosar-nou
val storageDosar = _storage.filesystem("server", "dosar/dosar-nou")
val dosar = storageDosar.path()
// Calea reală a noului fișier va fi:
// storage/filesystem/server/dosar/principal/fisier-nou.txt
val storageFisier = _storage.filesystem("server", "dosar/principal", "fisier-nou.txt")
val fisier = storageFisier.path()
// Calea reală a noului dosar va fi:
// storage/filesystem/server/dosar/dosar-nou
final storageDosar = _storage.filesystem("server", "dosar/dosar-nou")
final dosar = storageDosar.path()
// Calea reală a noului fișier va fi:
// storage/filesystem/server/dosar/principal/fisier-nou.txt
final storageFisier = _storage.filesystem("server", "dosar/principal", "fisier-nou.txt")
final fisier = storageFisier.path()
Sistem de operare
Pentru a realiza operațiile principale de manipulare a fișierelor și dosarelor oriunde în sistemul de operare,
folosim resursa _os:
Dosare în sistemul de operare
Asigură obținerea unui dosar existent, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const dosarulMeu = _os.folder("/tmp/dosar/principal")
const dosarulMeu = _os.folder("/tmp/dosar/principal")
dosarulMeu = _os.folder("/tmp/dosar/principal")
dosarulMeu = _os.folder("/tmp/dosar/principal")
val dosarulMeu = _os.folder("/tmp/dosar/principal")
final dosarulMeu = _os.folder("/tmp/dosar/principal")
Fișiere în sistemul de operare
Asigură obținerea unui fișier existent, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const fisierulMeu = _os.file("/tmp/dosar/principal/fisier.txt")
const fisierulMeu = _os.file("/tmp/dosar/principal/fisier.txt")
fisierulMeu = _os.file("/tmp/dosar/principal/fisier.txt")
fisierulMeu = _os.file("/tmp/dosar/principal/fisier.txt")
val fisierulMeu = _os.file("/tmp/dosar/principal/fisier.txt")
final fisierulMeu = _os.file("/tmp/dosar/principal/fisier.txt")
Căi în sistemul de operare
Obține o cale de fișier sau dosar, indiferent dacă există sau nu, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const fisierNou = _os.path("/tmp/dosar/principal/fisier-nou.txt")
const fisierNou = _os.path("/tmp/dosar/principal/fisier-nou.txt")
fisierNou = _os.path("/tmp/dosar/principal/fisier-nou.txt")
fisierNou = _os.path("/tmp/dosar/principal/fisier-nou.txt")
val fisierNou = _os.path("/tmp/dosar/principal/fisier-nou.txt")
final fisierNou = _os.path("/tmp/dosar/principal/fisier-nou.txt")
Crearea dosarelor
Metoda mkdir creează un dosar.
În exemplul următor se creează dosarul specific în rădăcina aplicației:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const dosar = _app.path("temporar")
dosar.mkdir()
const dosar = _app.path("temporar")
dosar.mkdir()
dosar = _app.path("temporar")
dosar.mkdir()
dosar = _app.path("temporar")
dosar.mkdir()
val dosar = _app.path("temporar")
dosar.mkdir()
final dosar = _app.path("temporar")
dosar.mkdir()
Pentru a crea un subdosar în dosarul existent, indicați calea completă separând ierarhia dosarelor cu
/:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const subdosar = _app.path("temporar/altul")
subdosar.mkdir()
const subdosar = _app.path("temporar/altul")
subdosar.mkdir()
subdosar = _app.path("temporar/altul")
subdosar.mkdir()
subdosar = _app.path("temporar/altul")
subdosar.mkdir()
val subdosar = _app.path("temporar/altul")
subdosar.mkdir()
final subdosar = _app.path("temporar/altul")
subdosar.mkdir()
Iar mkdirs creează dosarele anterioare și/sau subdosarele dacă nu există, deci permite crearea unei structuri
de dosare în aplicație, de exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const caleDosare = _app.path("temporar/a/b/c")
caleDosare.mkdirs()
const caleDosare = _app.path("temporar/a/b/c")
caleDosare.mkdirs()
caleDosare = _app.path("temporar/a/b/c")
caleDosare.mkdirs()
caleDosare = _app.path("temporar/a/b/c")
caleDosare.mkdirs()
val caleDosare = _app.path("temporar/a/b/c")
caleDosare.mkdirs()
final caleDosare = _app.path("temporar/a/b/c")
caleDosare.mkdirs()
Resursa _storage are metoda ensurePath care verifică dacă
calea există, iar dacă nu există atunci o creează:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const fisier = _storage.filesystem(
"public",
"temporar/subdosar",
"fisier.txt"
)
// Creează structura de dosare dacă nu există:
fisier.ensurePath()
const fisier = _storage.filesystem(
"public",
"temporar/subdosar",
"fisier.txt"
)
// Creează structura de dosare dacă nu există:
fisier.ensurePath()
fisier = _storage.filesystem(
"public",
"temporar/subdosar",
"fisier.txt"
)
# Creează structura de dosare dacă nu există:
fisier.ensurePath()
fisier = _storage.filesystem(
"public",
"temporar/subdosar",
"fisier.txt"
)
# Creează structura de dosare dacă nu există:
fisier.ensurePath()
val fisier = _storage.filesystem(
"public",
"temporar/subdosar",
"fisier.txt"
)
// Creează structura de dosare dacă nu există:
fisier.ensurePath()
final fisier = _storage.filesystem(
"public",
"temporar/subdosar",
"fisier.txt"
)
// Creează structura de dosare dacă nu există:
fisier.ensurePath()
Prin urmare, ensurePath garantează că structura de dosare există.
Ștergerea fișierelor și dosarelor
Cu metoda delete putem elimina atât dosare, cât și fișiere, însă dosarele trebuie să fie goale;
vedeți exemplul:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// Elimină un dosar gol:
const dosarGol = _app.folder("dosar/gol")
dosarGol.delete()
// Elimină un fișier:
const fisier = _app.file("dosar/fisier.txt")
fisier.delete()
// Elimină o cale, un dosar gol sau un fișier:
const cale = _app.path("dosar1/fisier-sau-dosar-gol")
cale.delete()
// Elimină un dosar gol:
const dosarGol = _app.folder("dosar/gol")
dosarGol.delete()
// Elimină un fișier:
const fisier = _app.file("dosar/fisier.txt")
fisier.delete()
// Elimină o cale, un dosar gol sau un fișier:
const cale = _app.path("dosar1/fisier-sau-dosar-gol")
cale.delete()
# Elimină un dosar gol:
dosarGol = _app.folder("dosar/gol")
dosarGol.delete()
# Elimină un fișier:
fisier = _app.file("dosar/fisier.txt")
fisier.delete()
# Elimină o cale, un dosar gol sau un fișier:
cale = _app.path("dosar1/fisier-sau-dosar-gol")
cale.delete()
# Elimină un dosar gol:
dosarGol = _app.folder("dosar/gol")
dosarGol.delete()
# Elimină un fișier:
fisier = _app.file("dosar/fisier.txt")
fisier.delete()
# Elimină o cale, un dosar gol sau un fișier:
cale = _app.path("dosar1/fisier-sau-dosar-gol")
cale.delete()
// Elimină un dosar gol:
val dosarGol = _app.folder("dosar/gol")
dosarGol.delete()
// Elimină un fișier:
val fisier = _app.file("dosar/fisier.txt")
fisier.delete()
// Elimină o cale, un dosar gol sau un fișier:
val cale = _app.path("dosar1/fisier-sau-dosar-gol")
cale.delete()
// Elimină un dosar gol:
final dosarGol = _app.folder("dosar/gol")
dosarGol.delete()
// Elimină un fișier:
final fisier = _app.file("dosar/fisier.txt")
fisier.delete()
// Elimină o cale, un dosar gol sau un fișier:
final cale = _app.path("dosar1/fisier-sau-dosar-gol")
cale.delete()
Cu deleteAll se permite eliminarea a tot, adică a tuturor fișierelor, dosarelor și subdosarelor în mod recursiv:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// Elimină dosarul și întregul conținut în mod recursiv:
const dosarGol = _app.folder("dosar/exemplu")
dosarGol.deleteAll()
// Elimină calea unui dosar și întregul său conținut intern,
// inclusiv subdosare și fișiere:
const cale = _app.path("cale/dosar")
cale.deleteAll()
// Elimină dosarul și întregul conținut în mod recursiv:
const dosarGol = _app.folder("dosar/exemplu")
dosarGol.deleteAll()
// Elimină calea unui dosar și întregul său conținut intern,
// inclusiv subdosare și fișiere:
const cale = _app.path("cale/dosar")
cale.deleteAll()
# Elimină dosarul și întregul conținut în mod recursiv:
dosarGol = _app.folder("dosar/exemplu")
dosarGol.deleteAll()
# Elimină calea unui dosar și întregul său conținut intern,
# inclusiv subdosare și fișiere:
cale = _app.path("cale/dosar")
cale.deleteAll()
# Elimină dosarul și întregul conținut în mod recursiv:
dosarGol = _app.folder("dosar/exemplu")
dosarGol.deleteAll()
# Elimină calea unui dosar și întregul său conținut intern,
# inclusiv subdosare și fișiere:
cale = _app.path("cale/dosar")
cale.deleteAll()
// Elimină dosarul și întregul conținut în mod recursiv:
val dosarGol = _app.folder("dosar/exemplu")
dosarGol.deleteAll()
// Elimină calea unui dosar și întregul său conținut intern,
// inclusiv subdosare și fișiere:
val cale = _app.path("cale/dosar")
cale.deleteAll()
// Elimină dosarul și întregul conținut în mod recursiv:
final dosarGol = _app.folder("dosar/exemplu")
dosarGol.deleteAll()
// Elimină calea unui dosar și întregul său conținut intern,
// inclusiv subdosare și fișiere:
final cale = _app.path("cale/dosar")
cale.deleteAll()
Pentru a elimina doar fișierele din interiorul dosarului și a nu șterge nimic din subdosare, avem deleteFiles, care permite
primirea unei extensii dacă doriți să eliminați doar fișierele cu o extensie specifică:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// Elimină fișierele doar din interiorul dosarului:
const dosar = _app.folder("dosar/exemplu")
dosar.deleteFiles()
// Elimină fișierele cu extensia JPG doar din interiorul dosarului:
const cale = _app.path("cale/dosar")
cale.deleteFiles("jpg")
// Elimină fișierele doar din interiorul dosarului:
const dosar = _app.folder("dosar/exemplu")
dosar.deleteFiles()
// Elimină fișierele cu extensia JPG doar din interiorul dosarului:
const cale = _app.path("cale/dosar")
cale.deleteFiles("jpg")
# Elimină fișierele doar din interiorul dosarului:
dosar = _app.folder("dosar/exemplu")
dosar.deleteFiles()
# Elimină fișierele cu extensia JPG doar din interiorul dosarului:
cale = _app.path("cale/dosar")
cale.deleteFiles("jpg")
# Elimină fișierele doar din interiorul dosarului:
dosar = _app.folder("dosar/exemplu")
dosar.deleteFiles()
# Elimină fișierele cu extensia JPG doar din interiorul dosarului:
cale = _app.path("cale/dosar")
cale.deleteFiles("jpg")
// Elimină fișierele doar din interiorul dosarului:
val dosar = _app.folder("dosar/exemplu")
dosar.deleteFiles()
// Elimină fișierele cu extensia JPG doar din interiorul dosarului:
val cale = _app.path("cale/dosar")
cale.deleteFiles("jpg")
// Elimină fișierele doar din interiorul dosarului:
final dosar = _app.folder("dosar/exemplu")
dosar.deleteFiles()
// Elimină fișierele cu extensia JPG doar din interiorul dosarului:
final cale = _app.path("cale/dosar")
cale.deleteFiles("jpg")
Pentru a elimina doar fișierele în mod recursiv și a păstra structura dosarelor, avem deleteAllFiles, care
permite de asemenea primirea unei extensii dacă doriți să eliminați doar un anumit tip de fișier; vedeți aceste două
exemple:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// Elimină toate fișierele din dosar și subdosare:
const dosar = _app.folder("dosar/exemplu")
dosar.deleteAllFiles()
// Elimină toate fișierele cu extensia JPG din dosar și subdosare:
const cale = _app.path("cale/dosar")
cale.deleteAllFiles("jpg")
// Elimină toate fișierele din dosar și subdosare:
const dosar = _app.folder("dosar/exemplu")
dosar.deleteAllFiles()
// Elimină toate fișierele cu extensia JPG din dosar și subdosare:
const cale = _app.path("cale/dosar")
cale.deleteAllFiles("jpg")
# Elimină toate fișierele din dosar și subdosare:
dosar = _app.folder("dosar/exemplu")
dosar.deleteAllFiles()
# Elimină toate fișierele cu extensia JPG din dosar și subdosare:
cale = _app.path("cale/dosar")
cale.deleteAllFiles("jpg")
# Elimină toate fișierele din dosar și subdosare:
dosar = _app.folder("dosar/exemplu")
dosar.deleteAllFiles()
# Elimină toate fișierele cu extensia JPG din dosar și subdosare:
cale = _app.path("cale/dosar")
cale.deleteAllFiles("jpg")
// Elimină toate fișierele din dosar și subdosare:
val dosar = _app.folder("dosar/exemplu")
dosar.deleteAllFiles()
// Elimină toate fișierele cu extensia JPG din dosar și subdosare:
val cale = _app.path("cale/dosar")
cale.deleteAllFiles("jpg")
// Elimină toate fișierele din dosar și subdosare:
final dosar = _app.folder("dosar/exemplu")
dosar.deleteAllFiles()
// Elimină toate fișierele cu extensia JPG din dosar și subdosare:
final cale = _app.path("cale/dosar")
cale.deleteAllFiles("jpg")
Redenumire sau mutare
Pentru a muta un dosar, este același lucru cu a-l redenumi:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const dosar = _app.folder("temporar")
dosar.renameTo("test")
const dosar = _app.folder("temporar")
dosar.renameTo("test")
dosar = _app.folder("temporar")
dosar.renameTo("test")
dosar = _app.folder("temporar")
dosar.renameTo("test")
val dosar = _app.folder("temporar")
dosar.renameTo("test")
final dosar = _app.folder("temporar")
dosar.renameTo("test")
Pentru a redenumi un dosar și a-l muta la alt nivel în ierarhia dosarelor, este același lucru cu a muta dosarul:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const dosar = _app.folder("temporar/a/b")
dosar.renameTo("test/z")
const dosar = _app.folder("temporar/a/b")
dosar.renameTo("test/z")
dosar = _app.folder("temporar/a/b")
dosar.renameTo("test/z")
dosar = _app.folder("temporar/a/b")
dosar.renameTo("test/z")
val dosar = _app.folder("temporar/a/b")
dosar.renameTo("test/z")
final dosar = _app.folder("temporar/a/b")
dosar.renameTo("test/z")
Și pentru a muta un subdosar fără a-i schimba numele, este suficient să indicați noua cale în metoda renameTo:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const dosar = _app.folder("test/altul")
dosar.renameTo("altul")
const dosar = _app.folder("test/altul")
dosar.renameTo("altul")
dosar = _app.folder("test/altul")
dosar.renameTo("altul")
dosar = _app.folder("test/altul")
dosar.renameTo("altul")
val dosar = _app.folder("test/altul")
dosar.renameTo("altul")
final dosar = _app.folder("test/altul")
dosar.renameTo("altul")
Salvarea conținutului în fișiere
Generarea conținutului în fișiere se face prin metoda output, care oferă un obiect de tipul
OutputStream.
Pentru a scrie datele în output, folosim metoda printAndClose,
care scrie conținutul în fișier și închide fișierul salvând conținutul.
Scrierea unui fișier text
Vedeți exemplul despre cum se creează un fișier cu conținut text:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
_app.path("temporar").mkdir()
const scriere = _app.path("temporar/fisier.txt").output()
scriere.printAndClose("Textul meu aici...")
_app.path("temporar").mkdir()
const scriere = _app.path("temporar/fisier.txt").output()
scriere.printAndClose("Textul meu aici...")
_app.path("temporar").mkdir()
scriere = _app.path("temporar/fisier.txt").output()
scriere.printAndClose("Textul meu aici...")
_app.path("temporar").mkdir()
scriere = _app.path("temporar/fisier.txt").output()
scriere.printAndClose("Textul meu aici...")
_app.path("temporar").mkdir()
val scriere = _app.path("temporar/fisier.txt").output()
scriere.printAndClose("Textul meu aici...")
_app.path("temporar").mkdir()
final scriere = _app.path("temporar/fisier.txt").output()
scriere.printAndClose("Textul meu aici...")
Ori de câte ori folosim
output, se generează un fișier nou; prin urmare, dacă rulați din nou codul, fișierul va fi recreat.
Scrierea unui fișier JSON
Vedeți cum putem salva date JSON în fișiere:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
_app.path("temporar").mkdir()
const scriere = _app.path("temporar/client.json").output()
scriere.printAndClose(
_val.map()
.set("nume", "Maria Ioana")
.set(
"inregistrari",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("temporar").mkdir()
const scriere = _app.path("temporar/client.json").output()
scriere.printAndClose(
_val.map()
.set("nume", "Maria Ioana")
.set(
"inregistrari",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("temporar").mkdir()
scriere = _app.path("temporar/client.json").output()
scriere.printAndClose(
_val.map()
.set("nume", "Maria Ioana")
.set(
"inregistrari",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("temporar").mkdir()
scriere = _app.path("temporar/client.json").output()
scriere.printAndClose(
_val.map()
.set("nume", "Maria Ioana")
.set(
"inregistrari",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("temporar").mkdir()
val scriere = _app.path("temporar/client.json").output()
scriere.printAndClose(
_val.map()
.set("nume", "Maria Ioana")
.set(
"inregistrari",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("temporar").mkdir()
final scriere = _app.path("temporar/client.json").output()
scriere.printAndClose(
_val.map()
.set("nume", "Maria Ioana")
.set(
"inregistrari",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
Pentru a genera JSON indentat, adică formatat pe mai multe linii și tabulat, putem transmite numărul de spații
pentru tabulare, de exemplu .toJSON(4).
Mai multe detalii despre metoda toJSON în Values.
Citirea conținutului din fișiere
Obținerea conținutului din fișiere se face prin metoda input, care oferă un obiect de tipul
InputStream.
Pentru a citi datele din input, folosim metoda readAllAndClose,
care procesează citirea conținutului din fișier și închide fișierul.
Citirea unui fișier text
Vedeți exemplul despre cum se citește un fișier și se obține conținutul text:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const fisier = _app.file("temporar/fisier.txt")
const citire = fisier.input()
_log.info(citire.readAllAndClose())
const fisier = _app.file("temporar/fisier.txt")
const citire = fisier.input()
_log.info(citire.readAllAndClose())
fisier = _app.file("temporar/fisier.txt")
citire = fisier.input()
_log.info(citire.readAllAndClose())
fisier = _app.file("temporar/fisier.txt")
citire = fisier.input()
_log.info(citire.readAllAndClose())
val fisier = _app.file("temporar/fisier.txt")
val citire = fisier.input()
_log.info(citire.readAllAndClose())
final fisier = _app.file("temporar/fisier.txt")
final citire = fisier.input()
_log.info(citire.readAllAndClose())
Citirea unui fișier JSON
Vedeți cum putem procesa date JSON obținute din fișiere:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const fisier = _app.file("temporar/fisier.txt")
const citire = fisier.input()
const date = _val.fromJSON(citire.readAllAndClose())
_log.info("Datele fișierului:", date)
const fisier = _app.file("temporar/fisier.txt")
const citire = fisier.input()
const date = _val.fromJSON(citire.readAllAndClose())
_log.info("Datele fișierului:", date)
fisier = _app.file("temporar/fisier.txt")
citire = fisier.input()
date = _val.fromJSON(citire.readAllAndClose())
_log.info("Datele fișierului:", date)
fisier = _app.file("temporar/fisier.txt")
citire = fisier.input()
date = _val.fromJSON(citire.readAllAndClose())
_log.info("Datele fișierului:", date)
val fisier = _app.file("temporar/fisier.txt")
val citire = fisier.input()
val date = _val.fromJSON(citire.readAllAndClose())
_log.info("Datele fișierului:", date)
final fisier = _app.file("temporar/fisier.txt")
final citire = fisier.input()
final date = _val.fromJSON(citire.readAllAndClose())
_log.info("Datele fișierului:", date)
Mai multe detalii despre metoda fromJSON al resursei Val.
Particularități ale Storage-ului
Resursa Storage are câteva metode pentru utilizare directă.
De exemplu, putem accesa prin Storage:
Asta înseamnă că nu trebuie să obținem file sau path pentru a lucra cu input sau output.
Scrierea unui fișier text în Storage
La inițializarea unui Storage pentru un fișier, putem realiza scrierea folosind metoda output, care obține o instanță a obiectului OutputStream ce permite procesarea și scrierea datelor.
Astfel, cu OutputStream, metoda printAndClose
scrie text (string) în fișier și îl închide.
Vedeți acest exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const text = _storage.filesystem("server", "temporar", "fisier.txt")
text.ensurePath()
text.output().printAndClose("Textul meu aici...")
const text = _storage.filesystem("server", "temporar", "fisier.txt")
text.ensurePath()
text.output().printAndClose("Textul meu aici...")
text = _storage.filesystem("server", "temporar", "fisier.txt")
text.ensurePath()
text.output().printAndClose("Textul meu aici...")
text = _storage.filesystem("server", "temporar", "fisier.txt")
text.ensurePath()
text.output().printAndClose("Textul meu aici...")
val text = _storage.filesystem("server", "temporar", "fisier.txt")
text.ensurePath()
text.output().printAndClose("Textul meu aici...")
final text = _storage.filesystem("server", "temporar", "fisier.txt")
text.ensurePath()
text.output().printAndClose("Textul meu aici...")
Citirea unui fișier text din Storage
La inițializarea unui Storage pentru un fișier, putem realiza citirea folosind metoda input, care obține o instanță a obiectului InputStream ce permite procesarea și citirea datelor.
Astfel, cu InputStream, metoda readAllAndClose
citește întregul fișier și îl închide, returnând datele ca text (string).
Vedeți acest exemplu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const text = _storage.filesystem("server", "temporar", "fisier.txt")
_log.info(text.input().readAllAndClose())
const text = _storage.filesystem("server", "temporar", "fisier.txt")
_log.info(text.input().readAllAndClose())
text = _storage.filesystem("server", "temporar", "fisier.txt")
_log.info(text.input().readAllAndClose())
text = _storage.filesystem("server", "temporar", "fisier.txt")
_log.info(text.input().readAllAndClose())
val text = _storage.filesystem("server", "temporar", "fisier.txt")
_log.info(text.input().readAllAndClose())
final text = _storage.filesystem("server", "temporar", "fisier.txt")
_log.info(text.input().readAllAndClose())
Crearea unui fișier aleatoriu în Storage
Resursa _storage permite generarea de nume aleatorii de fișiere, cu metoda newRandomFile.
Trebuie să inițiați un Storage pentru calea unui dosar, iar la executarea metodei newRandomFile se transmite extensia
fișierului dorit.
Metoda returnează o nouă instanță de Storage pentru fișierul aleatoriu generat automat, pentru a fi utilizată în dosarul inițial.
Vedeți cum se generează un fișier cu extensia TXT și nume aleatoriu:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const dosar = _storage.filesystem("server", "temporar")
const fisier = dosar.newRandomFile("txt")
fisier.output().printAndClose("Textul meu aici...")
const dosar = _storage.filesystem("server", "temporar")
const fisier = dosar.newRandomFile("txt")
fisier.output().printAndClose("Textul meu aici...")
dosar = _storage.filesystem("server", "temporar")
fisier = dosar.newRandomFile("txt")
fisier.output().printAndClose("Textul meu aici...")
dosar = _storage.filesystem("server", "temporar")
fisier = dosar.newRandomFile("txt")
fisier.output().printAndClose("Textul meu aici...")
val dosar = _storage.filesystem("server", "temporar")
val fisier = dosar.newRandomFile("txt")
fisier.output().printAndClose("Textul meu aici...")
final dosar = _storage.filesystem("server", "temporar")
final fisier = dosar.newRandomFile("txt")
fisier.output().printAndClose("Textul meu aici...")
Concluzie
Cu framework-ul low-code poliglot al Netuno putem realiza direct toate operațiile principale cu dosare și fișiere.
Folosind resursele specifice pentru manipularea fișierelor și dosarelor în:
_app- Aplicație_storage- Storage-ul aplicației_os- Sistem de operare
Din motive de bune practici și organizare, ar trebui să prioritizăm utilizarea storage, iar excepțiile ar trebui să fie doar cazuri punctuale și strict necesare.
Netuno procesează închiderea automată a inputurilor și outputurilor la sfârșitul procesării serviciilor, dar din motive de bune practici ar trebui să încercăm să le închidem întotdeauna.