1.3-Object-Georienteerd-Programmeren

Lezen van het bestandssysteem

Als IT-er heb je regelmatig te maken met het bestandssysteem, ongeacht of je nou na deze module verder gaat met Software Engineering of IT Service Management. Bij deze opdracht gaan we een script schrijven die een map en alle submappen op je besturingssysteem in kaart brengt.

Hiervoor gaan we gebruik maken van de java.io.File klasse die te vinden is in de standaard bibliotheek van Java. Omdat je steeds vaker klassen moet gaan gebruiken die je nu nog niet kent gaan we niet te veel over deze klasse uitleggen, maar moet je zelf de officiele documentatie van deze klasse gaan lezen.

Bestudeer daarom de volgende pagina aandachtig: Java File documentation

Let op: Met deze opdracht gaan we het bestandssysteem gebruiken en dus moet je even voorzichtig zijn met de paden die je hier aangeeft. Alhoewel wij alleen maar gaan uitlezen wat er op je bestandssysteem staat moet je je voorstellen dat je ook bestanden kan verwijderen. We richten ons vandaag met name op het lezen van je bestandssysteem, dus het risico is gelukkig beperkt.

Alle bestandsnamen in mappen verzamelen

Om een “veilige” omgeving te geven hebben wij wat bestanden hier voor je klaargezet om mee te experimenteren. In dit bestand vind je daarom de volgende directory en subdirectories.

Zet deze samplefolder naast je src map in je IntelliJ project (vergelijkbaar waar je ook je csv bestanden neer hebt gezet).

Schrijf nu een methode listAllFiles(String directory) die een overzicht print van een bepaalde map op je operating system. We gaan ons eerst richten op de bestanden in de hoofdmap en de namen van de submappen, je hoeft dus geen zorgen te maken om de in de inhoud van de submappen. (Dit mag uiteraard wel, maar maakt je opdracht aanzienlijk ingewikkelder!)

De bedoeling is dat je de hoofdmap opent en een overzicht geeft van de namen van alle submappen en de bestanden in de hoofdmap. We tonen hierbij eerst alle submappen en vervolgens alle bestanden. Van de bestanden kan je ook eenvoudig laten zien wat de bestandsgrootte is in bytes. Je moet hiervoor nog wel even uitzoeken met welke methode je precies de lengte van het bestand kan opvragen.

Je resultaat ziet er als volgt uit:

Directories:
- subfolder1
- subfolder2

Files:
- description.txt (63 bytes)
- document.csv (120 bytes)
- elephant.png (14426 bytes)
- giraffe.png (11633 bytes)
- README.md (344 bytes)

Zorg voor goede foutafhandeling in je programma als de folder die je wil bekijken niet bestaat.