User Tools

Site Tools


java:path2

This is an old revision of the document!


Η κλάση Path, η οποία εισήχθη στην έκδοση SE 7 της Java , είναι ένα από τα κύρια σημεία του java.nio.file πακέτου. Για όσους χρησιμοποιούν I / O αρχείου , είναι χρήσιμο να ξέρουν τα ισχυρά χαρακτηριστικά αυτής της κλάσης.

Σημείωση : Αν έχετε pre-JDK7 κώδικα που χρησιμοποιεί java.io.File, μπορείτε να επωφεληθείτε από τη λειτουργικότητα της κλάσης Path χρησιμοποιώντας τη μέθοδο File.toPath

Όπως υποδηλώνει το όνομά της, η κλάση Path είναι μια προγραμματική αναπαράσταση ενός μονοπατιού στο σύστημα αρχείων. Ένα Path αντικείμενο περιέχει το όνομα του αρχείου και της λίστας διευθύνσεων που χρησιμοποιήθηκαν για την κατασκευή του μονοπατιού, και χρησιμοποιείται για να εξετάσει, εντοπίσετε και χειριστείτε τα αρχεία.

Ένα παράδειγμα Path αντανακλά την υποκείμενη πλατφόρμα. Στο λειτουργικό σύστημα Solaris, ένα Path χρησιμοποιεί τη σύνταξη του Solaris (/ home / Joe / foo) και στο Microsoft Windows, ένα Path χρησιμοποιεί τη σύνταξη των Windows (C: \ home \ Joe \ foo). Ένα Path δεν είναι ανεξάρτητο από το σύστημα. Δεν μπορούμε να συγκρίνουμε ένα Path από το σύστημα αρχείων Solaris και να περιμένουμε να ταιριάξει με ένα Path από ένα σύστημα αρχείων των Windows, ακόμη και αν η δομή της διεύθυνσης είναι η ίδια και οι δύο παρουσίες εντοπίζουν το ίδιο σχετικό αρχείο.

Το αρχείο ή η διεύθυνση που αντιστοιχεί στο Path μπορεί να μην υπάρχει. Μπορούμε να δημιουργήσουμε ένα παράδειγμα Path και να το χειριστούμε με διάφορους τρόπους: μπορούμε να προσθέσουμε σε αυτό, να εξαγάγετε κομμάτια από αυτό ή ακόμα και να το συγκρίνουμε με ένα άλλο Path. Επίσης, μπορούμε να χρησιμοποιήσουμε τις μεθόδους της κλάσης Files για να ελέγχει την ύπαρξη του αρχείου που αντιστοιχεί στο Path, να δημιουργήσουμε το αρχείο, νατο ανοίξουμε, να το διαγράψουμε, να του αλλάξουμε τα δικαιώματά του, και ούτω καθεξής.

Λειτουργίες της Path

Η κλάση Path περιλαμβάνει διάφορες μεθόδους που μπορούν να χρησιμοποιηθούν για να αποκτήσουν πληροφορίες σχετικά με το μονοπάτι, αποκτήσουν πρόσβαση σε στοιχεία του μονοπατιού, μετατρέψουν το μονοπάτι σε άλλες μορφές, ή να εξάγουν τμήματα ενός μονοπατιού. Υπάρχουν επίσης μέθοδοι για το ταίριασμα της συμβολοσειράς του μονοπατιού και μέθοδοι για την αφαίρεση κομματιών από ένα μονοπάτι. Εδώ θα εξετάσουμε αυτές τις μεθόδους της Path, που μερικές φορές ονομάζεται syntactic λειτουργίες, επειδή λειτουργούν στο ίδιο το μονοπάτι και δεν έχουν πρόσβαση στο σύστημα αρχείων.

Δημιουργώντας ένα Path

Ένα παράδειγμα Path περιέχει τις πληροφορίες που χρησιμοποιούνται για τον καθορισμό της θέσης του αρχείου ή διεύθυνσης. Αφού οριστεί, ένα Path είναι εφοδιασμένο με μία σειρά από ένα ή περισσότερα ονόματα. Ένα στοιχείο ρίζα ή ένα όνομα αρχείου μπορεί να περιλαμβάνεται, αλλά δεν είναι απαραίτητο. Ένα Path μπορεί να αποτελείται από ένα μόνο όνομα διεύθυνσης ή αρχείου.

Μπορούμε εύκολα να δημιουργήσουμε ένα αντικείμενο Path χρησιμοποιώντας μία από τις ακόλουθες μεθόδους από βοηθητική κλάη Paths (σημειώστε το πληθυντικό) :

Path p1 = Paths.get("/tmp/foo");
Path p2 = Paths.get(args[0]);
Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));

Η μέθοδος Paths.get είναι συντομογραφία για τον παρακατω κώδικα :

Path p4 = FileSystems.getDefault().getPath("/users/sally");

Το ακόλουθο παράδειγμα δημιουργεί το /u/joe/logs/foo.log υποθέτοντας ότι το η home διεύθυνση είναι η /u/joe/logs/foo.log αν είμαστε σε Windows.

Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log");

Ανάκτηση πληροφοριών σχετικά με ένα Path

Μπορείτε να σκεφτείτε το Path ως την αποθήκευση αυτών των στοιχείων ονομάτων σαν μια ακολουθία. Το υψηλότερο στοιχείο στην δομή του καταλόγου θα βρίσκεται στο ευρετήριο 0. Η χαμηλότερη στοιχείο στην δομή διευθύνσεων θα βρίσκεται στο ευρετήριο [n-1], όπου n είναι ο αριθμός των στοιχείων ονομάτων στο Path. Μέθοδοι είναι διαθέσιμες για την ανάκτηση μεμονωμένων στοιχείων ή κομματιών του Path χρησιμοποιώντας αυτά τα ευρετήρια.

Τα παραδείγματα που θα χρησιμοποιήσουμε παρακάτω χρησιμοποιούν την ακόλουθη δομή διευθύνσεων.

Το ακόλουθο απόσπασμα κώδικα ορίζει ένα παράδειγμα Path και στη συνέχεια, επικαλείται διάφορες μεθόδους για να λάβει πληροφορίες σχετικά με τη διαδρομή:

// None of these methods requires that the file corresponding
// to the Path exists.
// Microsoft Windows syntax
Path path = Paths.get("C:\\home\\joe\\foo");
 
// Solaris syntax
Path path = Paths.get("/home/joe/foo");
 
System.out.format("toString: %s%n", path.toString());
System.out.format("getFileName: %s%n", path.getFileName());
System.out.format("getName(0): %s%n", path.getName(0));
System.out.format("getNameCount: %d%n", path.getNameCount());
System.out.format("subpath(0,2): %s%n", path.subpath(0,2));
System.out.format("getParent: %s%n", path.getParent());
System.out.format("getRoot: %s%n", path.getRoot());

Έξοδος σε λειτουργικό σύστημα Microsoft Windows :

C:\home\joe\foo 
foo 
home 
3  
home\joe 
\home\joe 
C:\

Έξοδος σε λειτουργικό σύστημα Solaris OS :

/home/joe/foo
foo 
home 
3  
home/joe 
/home/joe 
/

Το προηγούμενο παράδειγμα δείχνει την έξοδο για ένα απόλυτο μονοπάτι. Στο ακόλουθο παράδειγμα, καθορίζεται ένα σχετικό μονοπάτι :

// Solaris syntax
Path path = Paths.get("sally/bar");

or

// Microsoft Windows syntax
Path path = Paths.get("sally\\bar");

java/path2.1425292521.txt.gz · Last modified: 2015/03/02 10:35 (external edit)