Λύθηκε: λήψη ονόματος αρχείου από τη διαδρομή

Τελευταία ενημέρωση: 09/11/2023
Συγγραφέας: C SourceTrail

Φυσικά, ας εμβαθύνουμε στο θέμα της λήψης ονόματος αρχείου από μια διαδρομή με τη βοήθεια της C++.

Εισαγωγή
Η εξαγωγή του ονόματος αρχείου από μια διαδρομή είναι μια συχνή εργασία στον προγραμματισμό, ειδικά σε λειτουργίες που περιλαμβάνουν χειρισμό αρχείων. Αυτό το άρθρο παρέχει μια εις βάθος εξήγηση του τρόπου με τον οποίο μπορείτε να ολοκληρώσετε αυτήν την εργασία χρησιμοποιώντας τη C++. Μέχρι το τέλος του άρθρου, θα είστε σε θέση να κατανοήσετε και να εφαρμόσετε μια λύση σε αυτό το πρόβλημα.

Η Λύση
Η λύση περιλαμβάνει τη χρήση των ενσωματωμένων λειτουργιών που παρέχονται από την C++ Standard Library. Η βιβλιοθήκη στην οποία θα εστιάσουμε είναι η βιβλιοθήκη του συστήματος αρχείων, που παρουσιάστηκε στη C++17. Παρέχει διάφορες λειτουργίες για το χειρισμό αρχείων και καταλόγων.

#περιλαμβάνω
std::string get_filename(std::string path){
return std:: filesystem:: path(path).filename().string();
}

Κατανόηση του κώδικα
Η συνάρτηση get_filename παίρνει ένα όρισμα συμβολοσειράς – διαδρομή και επιστρέφει το όνομα αρχείου. Η συνάρτηση χρησιμοποιεί τη βιβλιοθήκη του συστήματος αρχείων. Δημιουργούμε ένα αντικείμενο filesystem::path με την παρεχόμενη συμβολοσειρά διαδρομής και χρησιμοποιούμε τη μέθοδο filename() για να αποκτήσουμε το όνομα αρχείου. Το όνομα αρχείου στη συνέχεια μετατρέπεται σε συμβολοσειρά χρησιμοποιώντας τη μέθοδο string() και επιστρέφεται από τη συνάρτηση.

  • Η πρώτη γραμμή είναι όπου συμπεριλαμβάνουμε τη βιβλιοθήκη του συστήματος αρχείων στον κώδικά μας.
  • Η συνάρτηση get_filename ορίζεται με μια διαδρομή ορίσματος συμβολοσειράς.
  • Δημιουργούμε ένα αντικείμενο συστήματος αρχείων::path με τη συμβολοσειρά διαδρομής.
  • Η μέθοδος ονόματος αρχείου καλείται στο αντικείμενο συστήματος αρχείων::διαδρομή για να ληφθεί το όνομα αρχείου.
  • Το όνομα αρχείου στη συνέχεια μετατρέπεται σε συμβολοσειρά χρησιμοποιώντας τη μέθοδο string().

Η Βιβλιοθήκη Συστήματος Αρχείων

Το πρότυπο C++17 εισήγαγε τη βιβλιοθήκη συστήματος αρχείων, η οποία αποτελείται από μια σειρά κλάσεων και συναρτήσεων που στοχεύουν στην εκτέλεση λειτουργιών σε διαδρομές αρχείων, αρχεία και καταλόγους. Μία από τις κλάσεις του – filesystem::path, χρησιμοποιείται στη λύση μας για την εξαγωγή του ονόματος αρχείου από τη διαδρομή.

Αυτή η βιβλιοθήκη σάς επιτρέπει να εκτελείτε λειτουργίες όπως ανάγνωση, εγγραφή, μετονομασία αρχείων, δημιουργία και αφαίρεση καταλόγων και ούτω καθεξής, απλοποιώντας δραστικά τους χειρισμούς του συστήματος αρχείων στη C++.

εναλλακτικές μέθοδοι

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

#περιλαμβάνω
std::string get_filename_old(std::διαδρομή συμβολοσειράς){
std::size_t found = path.find_last_of(“/\”);
return path.substr(found+1);
}

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

Σχετικές αναρτήσεις: