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
java:creating_and_reading_directories [2015/03/03 21:32]
elkarafe
java:creating_and_reading_directories [2016/02/26 11:15] (current)
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.1425418328.txt.gz · Last modified: 2016/02/26 11:15 (external edit)