java:creating_and_reading_directories

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:creating_and_reading_directories [2015/03/03 21:32]
elkarafe
java:creating_and_reading_directories [2015/03/04 19:48]
gthanos [Δημιουργία μιας Διεύθυνσης]
Line 1: Line 1:
 +====== Δημιουργία και ανάγνωση Διευθύνσεων ======
 +
 ==== Καταχώρηση Root Διευθύνσεων ενός Συστήματος Αρχείων ==== ==== Καταχώρηση Root Διευθύνσεων ενός Συστήματος Αρχείων ====
  
Line 29: Line 31:
 FileAttribute<​Set<​PosixFilePermission>>​ attr = FileAttribute<​Set<​PosixFilePermission>>​ attr =
     PosixFilePermissions.asFileAttribute(perms);​     PosixFilePermissions.asFileAttribute(perms);​
-Files.createDirectory(file,​ attr);<code java>+Files.createDirectory(file,​ attr);
 </​code>​ </​code>​
  
Line 52: Line 54:
 Η πρώτη μέθοδος επιτρέπει στον κώδικας να καθορίσει μια θέση για την προσωρινή διεύθυνση και η δεύτερη μέθοδος δημιουργεί μία νέα διεύθυνση στην προεπιλεγμένη διεύθυνση προσωρινών αρχείων. Η πρώτη μέθοδος επιτρέπει στον κώδικας να καθορίσει μια θέση για την προσωρινή διεύθυνση και η δεύτερη μέθοδος δημιουργεί μία νέα διεύθυνση στην προεπιλεγμένη διεύθυνση προσωρινών αρχείων.
  
 +==== Καταχώρηση των περιεχομένων μιας Διεύθυνσης ====
 +
 +Μπορούμε να καταχωρήσουμε όλα τα περιεχόμενα μιας διεύθυνσης με τη χρήση της μεθόδου //​newDirectoryStream(Path)//​. Αυτή η μέθοδος επιστρέφει ένα αντικείμενο που υλοποιεί το περιβάλλον //​DirectoryStream//​. Η κλάση που υλοποιεί το interface DirectoryStream υλοποιεί επίσης //​Iterable//,​ ώστε να μπορούμε να διατρέξουμε το stream διέυθυνσης,​ διαβάζοντας όλα τα αντικείμενα. Αυτή η προσέγγιση έχει καλή κλιμάκωση σε πολύ μεγάλες διευθύνσεις.
 +
 +Σημείωση:​ Το DirectoryStream που επιστρέφεται είναι ένα //stream//. Εάν δεν χρησιμοποιείτε try-with-resources,​ μην ξεχάσετε να κλείσετε το //stream// στο //finally// block. Η try-with-resources δομή φροντίζει γι '​αυτό μόνη της.
 +
 +Το ακόλουθο κομμάτι κώδικα δείχνει πώς να εκτυπώσετε τα περιεχόμενα μιας διεύθυνσης:​
 +
 +<code java>
 +Path dir = ...;
 +try (DirectoryStream<​Path>​ stream = Files.newDirectoryStream(dir)) {
 +    for (Path file: stream) {
 +        System.out.println(file.getFileName());​
 +    }
 +} catch (IOException | DirectoryIteratorException x) {
 +    // IOException can never be thrown by the iteration.
 +    // In this snippet, it can only be thrown by newDirectoryStream.
 +    System.err.println(x);​
 +}
 +</​code>​
 +
 +Τα αντικείμενα //Path// που επιστρέφουν από την iterator είναι τα ονόματα των εισόδων που επιλύθηκαν κατά της διεύθυνσης. Έτσι, εάν καταχωρούμε τα περιεχόμενα της διεύθυνσης /tmp, οι είσοδοι επιστρέφονται με τη μορφή /tmp/a, /tmp/b, και ούτω καθεξής.
 +
 +Αυτή η μέθοδος επιστρέφει ολόκληρο το περιεχόμενο μιας διεύθυνσης:​ αρχεία,​ συνδέσμους,​ υποδιευθύνσεις και κρυφά αρχεία. Αν θέλουμε να είμαστε πιο επιλεκτικοί σχετικά με το περιεχόμενο που ανακτάται,​ μπορούμε να χρησιμοποιήσουμε μία από τις άλλες μεθόδους //​newDirectoryStream//​.
 +
 +Σημειώστε ότι αν υπάρχει ένα exception κατά τη διάρκεια της επανάληψης διεύθυνσης,​ τότε το //​DirectoryIteratorException//​ εμφανίζεται με το //​IOException//​ ως αιτία. ​
java/creating_and_reading_directories.txt · Last modified: 2016/02/26 11:15 (external edit)