Cursus Raku / Objecten, in- en uitvoer en excepties / Invoer en uitvoer
Bestanden en mappen verwijderen
Net zoals spurt en mkdir dingen op schijf
aanmaken, halen twee routines ze weg.
De routine unlink verwijdert een bestand:
spurt 'temp.txt', 'scratch data';
say 'temp.txt'.IO.e; # True
unlink 'temp.txt';
say 'temp.txt'.IO.e; # Falseunlink verwijdert het genoemde bestand. Net als de
andere routines voor het bestandssysteem heeft hij ook een methodevorm
op een padobject — 'temp.txt'.IO.unlink.
Verwijderen is onmiddellijk en definitief: er is geen prullenbak om
iets uit terug te halen. Merk op dat je, nadat een bestand weg is, erop
moet testen met .e (bestaan) in plaats van .f,
omdat de typetests .f en .d werpen wanneer het
pad er niet is.
De routine rmdir verwijdert een map, maar alleen een
lege:
mkdir 'reports';
rmdir 'reports';
say 'reports'.IO.e; # FalseAls de map nog iets bevat, verwijdert rmdir niets en
laat hij haar staan. Dus om een map te verwijderen die bestanden bevat,
maak je haar eerst leeg en verwijder je haar daarna:
mkdir 'reports';
spurt 'reports/jan.txt', 'January';
spurt 'reports/feb.txt', 'February';
.unlink for 'reports'.IO.dir; # delete every entry
rmdir 'reports'; # now the directory is empty
say 'reports'.IO.e; # False'reports'.IO.dir somt de items van de map op (het vorige
onderwerp behandelde dat), en .unlink op elk ervan
aanroepen verwijdert ze. Zodra de map leeg is, kan rmdir
haar weghalen. (Deze platte lus gaat ervan uit dat de map alleen
bestanden bevat; een boom met geneste submappen zou eerst daarin moeten
afdalen.)
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Oefeningen
Deze sectie bevat 2 oefeningen. Bekijk alle onderwerpen van deze sectie voordat je aan de oefeningen begint.