User Tools

Site Tools


java:class_path

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:class_path [2017/02/07 09:43] – [Αφαίρεση περιττών κομματιών από ένα Path] gthanosjava:class_path [2020/03/09 07:19] (current) – [Μετατροπή ενός Path] gthanos
Line 1: Line 1:
-====== Η κλάση Path ======+====== Το interface Path ======
  
-Η κλάση [[http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html|Path]] αποτελεί προγραμματική αναπαράσταση ενός μονοπατιού στο σύστημα αρχείων (//filesystem//). +<WRAP important 70% round> 
 +**Η ενότητα αυτή είναι προαιρετική και δεν απαραίτητη για την κατανόηση των ενοτήτων που ακολουθούν.** 
 +</WRAP> 
 + 
 +Το interface [[http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html|Path]] αποτελεί προγραμματική αναπαράσταση ενός μονοπατιού στο σύστημα αρχείων (//filesystem//). 
  
-Καθε αντικείμενο της κλάσης //Path// λαμβάνει υπόψη του τις ιδιαιτερότητες του λειτουργικού συστήματος. Στο λειτουργικό σύστημα GNU/Linux, ένα //Path// χρησιμοποιεί τη σύνταξη (/home/Joe/foo), ενώ στο Microsoft Windows, ένα //Path// χρησιμοποιεί τη σύνταξη (C:\home\Joe\foo). +Κάθε αντικείμενο που υλοποιεί το interface //Path// λαμβάνει υπόψη του τις ιδιαιτερότητες του λειτουργικού συστήματος. Στο λειτουργικό σύστημα GNU/Linux, ένα //Path// χρησιμοποιεί τη σύνταξη (/home/Joe/foo), ενώ στο Microsoft Windows, ένα //Path// χρησιμοποιεί τη σύνταξη (C:\home\Joe\foo). 
  
-Το αρχείο ή η διεύθυνση που αντιστοιχεί σε ένα αντικείμενο τύπου //Path// μπορεί να μην υπάρχει. Μπορούμε να δημιουργήσουμε ένα υφιστάμενο ή μη υφιστάμενο //Path// και να το χειριστούμε με διάφορους τρόπους. Για παράδειγμα, μπορούμε να εξάγουμε τμήματα από αυτό ή ακόμα και να το συγκρίνουμε με ένα άλλο //Path//. Επίσης, μπορούμε να χρησιμοποιήσουμε τις μεθόδους της κλάσης [[java:class_file|File]] για να ελέγξουμε την ύπαρξη του αρχείου ή του καταλόγου που αντιστοιχεί στο //Path//, να δημιουργήσουμε το αρχείο εάν δεν υπάρχει, να το ανοίξουμε, να το διαγράψουμε, να του αλλάξουμε τα δικαιώματά κ.α.+Το αρχείο ή η διεύθυνση που αντιστοιχεί σε ένα αντικείμενο τύπου //Path// μπορεί να μην υπάρχει. Μπορούμε να δημιουργήσουμε ένα //Path// προκειμένου να εξάγουμε τμήματα από αυτό ή να το συγκρίνουμε με ένα άλλο //Path//. Επίσης, μπορούμε να χρησιμοποιήσουμε τις μεθόδους της κλάσης [[java:class_file|File]] για να ελέγξουμε την ύπαρξη του αρχείου ή του καταλόγου που αντιστοιχεί στο //Path//, να δημιουργήσουμε το αρχείο εάν δεν υπάρχει, να το ανοίξουμε, να το διαγράψουμε, να του αλλάξουμε τα δικαιώματά κ.α.
  
 ==== Δημιουργώντας ένα Path ==== ==== Δημιουργώντας ένα Path ====
Line 35: Line 39:
 ==== Ανάκτηση πληροφοριών σχετικά με ένα Path ==== ==== Ανάκτηση πληροφοριών σχετικά με ένα Path ====
  
-Μπορείτε να σκεφτείτε το //Path// ως την αποθήκευση αυτών των στοιχείων ονομάτων σαν μια ακολουθία. Το υψηλότερο στοιχείο στην δομή του καταλόγου θα βρίσκεται στη θέση 0 και το χαμηλότερο στοιχείο στην δομή διευθύνσεων θα βρίσκεται στη θέση //[n-1]// (όπου //n// είναι ο αριθμός των στοιχείων ονομάτων στο //Path//). Η κλάση //Path// παρέχει μεθόδους για την ανάκτηση μεμονωμένων στοιχείων ή τμημάτων του //Path//+Μπορείτε να σκεφτείτε το //Path// ως την αποθήκευση αυτών των στοιχείων ονομάτων σε μια ακολουθία. Το υψηλότερο στοιχείο στην δομή του καταλόγου θα βρίσκεται στη θέση 0 και το χαμηλότερο στοιχείο στην δομή διευθύνσεων θα βρίσκεται στη θέση //[n-1]// (όπου //n// είναι ο αριθμός των στοιχείων ονομάτων στο //Path//). Η κλάση //Path// παρέχει μεθόδους για την ανάκτηση μεμονωμένων στοιχείων ή τμημάτων του //Path//
  
 Τα παραδείγματα που θα χρησιμοποιήσουμε παρακάτω χρησιμοποιούν την ακόλουθη δομή διευθύνσεων. Τα παραδείγματα που θα χρησιμοποιήσουμε παρακάτω χρησιμοποιούν την ακόλουθη δομή διευθύνσεων.
Line 117: Line 121:
  
 Για να "καθαρίσουμε" ένα μονοπάτι, διασφαλίζοντας παράλληλα ότι το αποτέλεσμα εντοπίζει το σωστό αρχείο, μπορούμε να χρησιμοποιήσουμε τη μέθοδο //toRealPath//, η οποία περιγράφεται παρακάτω. Για να "καθαρίσουμε" ένα μονοπάτι, διασφαλίζοντας παράλληλα ότι το αποτέλεσμα εντοπίζει το σωστό αρχείο, μπορούμε να χρησιμοποιήσουμε τη μέθοδο //toRealPath//, η οποία περιγράφεται παρακάτω.
 +
 ==== Μετατροπή ενός Path ==== ==== Μετατροπή ενός Path ====
  
Line 134: Line 139:
 === Η μέθοδος toAbsolutePath === === Η μέθοδος toAbsolutePath ===
  
-Η μέθοδος //toAbsolutePath// μετατρέπει ένα μονοπάτι σε ένα απόλυτο μονοπάτι. Αν το μονοπάτι είναι ήδη απόλυτο, επιστρέφει το ίδιο αντικείμενο PathΗ μέθοδος //toAbsolutePath// μπορεί να είναι πολύ χρήσιμη κατά την επεξεργασία ονομάτων αρχείων εισαγόμενα από τον χρήστη . Για παράδειγμα:+Η μέθοδος //toAbsolutePath// μετατρέπει το δοθέν μονοπάτι σε απόλυτο μονοπάτι. Αν το μονοπάτι είναι ήδη απόλυτο, επιστρέφει το ίδιο αντικείμενο. Το μονοπάτι δεν είναι απαραίτητο να υφίσταται στο σύστημα αρχείων για να λειτουργήσει η μέθοδοςΠαρακάτω δίνεται ένα παράδειγμα χρήσης της μεθόδου.
  
-<code java>+<code java FileTest.java>
 class FileTest { class FileTest {
-    public static void main(String[] args) {+  public static void main(String[] args) {
  
-        if (args.length < 1) { +    if (args.length < 1) { 
-            System.out.println("usage: FileTest file"); +      System.out.println("usage: FileTest file"); 
-            System.exit(-1); +      System.exit(-1);
-        } +
- +
-        // Converts the input string to a Path object. +
-        Path inputPath = Paths.get(args[0]); +
- +
-        // Converts the input Path +
-        // to an absolute path. +
-        // Generally, this means prepending +
-        // the current working +
-        // directory.  If this example +
-        // were called like this: +
-        //     java FileTest foo +
-        // the getRoot and getParent methods +
-        // would return null +
-        // on the original "inputPath" +
-        // instance.  Invoking getRoot and +
-        // getParent on the "fullPath" +
-        // instance returns expected values. +
-        Path fullPath = inputPath.toAbsolutePath();+
     }     }
 +    Path inputPath = Paths.get(args[0]);
 +    Path fullPath = inputPath.toAbsolutePath();
 +  }
 } }
 </code> </code>
- 
-Η μέθοδος //toAbsolutePath// μετατρέπει την είσοδο του χρήστη και επιστρέφει ένα //Path// που επιστρέφει χρήσιμες τιμές όταν ερωτηθούν. Το αρχείο δεν είναι απαραίτητο να υπάρχει για να λειτουργήσει αυτή η μέθοδος. 
  
 === Η μέθοδος toRealPath === === Η μέθοδος toRealPath ===
  
-Η μέθοδος //toRealPath// επιστρέφει την πραγματική πορεία ενός υπάρχοντος αρχείου. Επίσης, εκτελεί πολλές λειτουργίες σε μία:+Η μέθοδος //toRealPath// επιστρέφει το "πραγματικό" μονοπάτι ενός υπάρχοντος αρχείου ή καταλόγου, εκτελώντας πολλές λειτουργίες ταυτόχρονα:
  
   * Αν περνά σε αυτή τη μέθοδο η τιμή //true// και το σύστημα αρχείων υποστηρίζει symbolic links, τότε επιλύει όλα τα symbolic links στο μονοπάτι.   * Αν περνά σε αυτή τη μέθοδο η τιμή //true// και το σύστημα αρχείων υποστηρίζει symbolic links, τότε επιλύει όλα τα symbolic links στο μονοπάτι.
Line 176: Line 163:
   * Αν το //Path// περιλαμβάνει τυχόν περιττά στοιχεία (//loops//), επιστρέφει ένα μονοπάτι χωρίς αυτά τα στοιχεία.   * Αν το //Path// περιλαμβάνει τυχόν περιττά στοιχεία (//loops//), επιστρέφει ένα μονοπάτι χωρίς αυτά τα στοιχεία.
  
-|Προηγούμενο: [[:java:formatting Μορφοποίηση Εξόδου ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:class_fileΗ κλάση File ]] |+|Προηγούμενο: [[:java:class_file Η κλάση File ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:file_io_introΡοές δεδομένων ]] |
  
java/class_path.1486460628.txt.gz · Last modified: 2017/02/07 09:43 by gthanos