User Tools

Site Tools


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 revisionPrevious revision
Next revision
Previous revision
java:creating_and_reading_directories [2015/03/03 21:32] elkarafejava:creating_and_reading_directories [2015/03/10 11:25] (current) – [Δημιουργία και ανάγνωση Διευθύνσεων] 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.1425418328.txt.gz · Last modified: 2015/03/03 21:32 by elkarafe