This shows you the differences between two versions of the page.
java:creating_and_reading_directories [2015/03/03 22:17] elkarafe |
java:creating_and_reading_directories [2016/02/26 11:15] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== Καταχώρηση Root Διευθύνσεων ενός Συστήματος Αρχείων ==== | ||
- | |||
- | Μπορούμε να καταγράψουμε όλες τις root διευθύνσεις ενός συστήματος αρχείων, χρησιμοποιώντας τη μέθοδο //FileSystem.getRootDirectories//. Αυτή η μέθοδος επιστρέφει ένα //Iterable//, το οποίο μας επιτρέπει να χρησιμοποιήσουμε τον for βρόγχο για να επαναλάβουμε όλες τις root διευθύνσεις. | ||
- | |||
- | Το ακόλουθο απόσπασμα κώδικα εκτυπώνει τις root διευθύνσεις για το προεπιλεγμένο σύστημα αρχείων: | ||
- | |||
- | <code java> | ||
- | Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories(); | ||
- | for (Path name: dirs) { | ||
- | System.err.println(name); | ||
- | } | ||
- | </code> | ||
- | |||
- | ==== Δημιουργία μιας Διεύθυνσης ==== | ||
- | |||
- | Μπορούμε να δημιουργήσουμε μια νέα διεύθυνση με τη χρήση της //createDirectory (Path, FileAttribute <?>)// μεθόδου. Αν δεν καθορίσουμε καθόλου FileAttributes, τότε η νέα διεύθυνση θα έχει προεπιλεγμένα χαρακτηριστικά. | ||
- | Για παράδειγμα: | ||
- | |||
- | <code java> | ||
- | Path dir = ...; | ||
- | Files.createDirectory(path); | ||
- | </code> | ||
- | |||
- | Το ακόλουθο κομμάτι κώδικα δημιουργεί μια νέα διεύθυνση για ένα σύστημα αρχείων POSIX που έχει συγκεκριμένα δικαιώματα: | ||
- | |||
- | <code java> | ||
- | Set<PosixFilePermission> perms = | ||
- | PosixFilePermissions.fromString("rwxr-x---"); | ||
- | FileAttribute<Set<PosixFilePermission>> attr = | ||
- | PosixFilePermissions.asFileAttribute(perms); | ||
- | Files.createDirectory(file, attr);<code java> | ||
- | </code> | ||
- | |||
- | Για να δημιουργήσουμε μια διεύθυνση κάποιοα επίπεδα βαθιά όταν μία ή περισσότερες από τις μητρικές τους διευθύνσεις δεν θα μπορούσε να υπάρχει ακόμα, μπορούμε να χρησιμοποιήσουμε τη μέθοδο //createDirectories (Path, FileAttribute <?>)//. Όπως και με την //createDirectory (Path, FileAttribute <?>)// μέθοδο, μπορούμε να καθορίσουμε ένα προαιρετικό σύνολο των αρχικών χαρακτηριστικών αρχείου. | ||
- | Το ακόλουθο κομμάτι κώδικα χρησιμοποιεί προεπιλεγμένα χαρακτηριστικά: | ||
- | |||
- | <code java> | ||
- | Files.createDirectories(Paths.get("foo/bar/test")); | ||
- | </code> | ||
- | |||
- | Οι διευθύνσεις δημιουργούνται, όπως απαιτείται, από πάνω προς τα κάτω. Στο foo/bar/test παράδειγμα, αν η διεύθυνση foo δεν υπάρχει, δημιουργείται. Στη συνέχεια δημιουργείται η διεύθυνση bar, εάν χρειάζεται, και τέλος δημιουργείται η διεύθυνση test . | ||
- | |||
- | Είναι δυνατόν η μέθοδος αυτή να αποτύχει μετά τη δημιουργία κάποιων, αλλά όχι όλων, των μητρικών διευθύνσεων. | ||
- | |||
- | ==== Δημιουργία μιας Προσωρινής Διεύθυνσης ==== | ||
- | |||
- | Μπορούμε να δημιουργήσουμε μία προσωρινή διεύθυνη, χρησιμοποιώντας μία από τις createTempDirectory μεθόδους: | ||
- | |||
- | * createTempDirectory(Path, String, FileAttribute<?>...) | ||
- | * createTempDirectory(String, FileAttribute<?>...) | ||
- | |||
- | Η πρώτη μέθοδος επιτρέπει στον κώδικας να καθορίσει μια θέση για την προσωρινή διεύθυνση και η δεύτερη μέθοδος δημιουργεί μία νέα διεύθυνση στην προεπιλεγμένη διεύθυνση προσωρινών αρχείων. | ||
- | |||
- | ==== Καταχώρηση των περιεχομένων μιας Διεύθυνσης ==== | ||
- | |||
- | Μπορούμε να καταχωρήσουμε όλα τα περιεχόμενα μιας διεύθυνσης με τη χρήση της μεθόδου //newDirectoryStream(Path)//. Αυτή η μέθοδος επιστρέφει ένα αντικείμενο που υλοποιεί το περιβάλλον //DirectoryStream//. Η κλάση που υλοποιεί το interface DirectoryStream υλοποιεί επίσης //Iterable//, ώστε να μπορούμε να διατρέξουμε το stream διέυθυνσης, διαβάζοντας όλα τα αντικείμενα. Αυτή η προσέγγιση έχει καλή κλιμάκωση σε πολύ μεγάλες διευθύνσεις. | ||