Protams, iedziļināsimies tēmā par faila nosaukuma iegūšanu no ceļa, izmantojot C++.
Ievads
Faila nosaukuma izvilkšana no ceļa ir biežs programmēšanas uzdevums, īpaši operācijās, kas saistītas ar failu apstrādi. Šajā rakstā ir sniegts padziļināts skaidrojums par to, kā veikt šo uzdevumu, izmantojot C++. Līdz raksta beigām jūs varēsiet saprast un ieviest šīs problēmas risinājumu.
Risinājums
Risinājums ietver C++ standarta bibliotēkas nodrošināto iebūvēto funkciju izmantošanu. Bibliotēka, uz kuru mēs pievērsīsimies, ir failu sistēmas bibliotēka, kas ieviesta programmā C++17. Tas nodrošina dažādas funkcijas, lai manipulētu ar failiem un direktorijiem.
#include
std::string get_filename(std::string ceļš){
return std::failu sistēma::ceļš(ceļš).faila nosaukums().string();
}
Kodeksa izpratne
Funkcija get_filename izmanto virknes argumentu - ceļš un atgriež faila nosaukumu. Funkcija izmanto failu sistēmas bibliotēku. Mēs izveidojam failu sistēmas::path objektu ar norādīto ceļa virkni un izmantojam failu name() metodi, lai iegūtu faila nosaukumu. Pēc tam faila nosaukums tiek pārveidots par virkni, izmantojot metodi string(), un funkcija atgriezta.
- Pirmā rinda ir vieta, kur mēs savā kodā iekļaujam failu sistēmas bibliotēku.
- Funkcija get_filename ir definēta ar virknes argumenta ceļu.
- Mēs izveidojam failu sistēmas::path objektu ar ceļa virkni.
- Faila nosaukuma metode tiek izsaukta objektā filesystem::path, lai iegūtu faila nosaukumu.
- Pēc tam faila nosaukums tiek pārveidots par virkni, izmantojot string() metodi.
Failu sistēmas bibliotēka
Standarts C++17 ieviesa failu sistēmas bibliotēku, kas sastāv no vairākām klasēm un funkcijām, kuru mērķis ir veikt darbības ar failu ceļiem, failiem un direktorijiem. Viena no tās klasēm – filesystem::path – tiek izmantota mūsu risinājumā, lai no ceļa izvilktu faila nosaukumu.
Šī bibliotēka ļauj veikt tādas darbības kā lasīšana, rakstīšana, failu pārdēvēšana, direktoriju izveide un noņemšana un tā tālāk, krasi vienkāršojot failu sistēmas manipulācijas programmā C++.
alternatīvas metodes
Gadījumos, kad failu sistēmas bibliotēka nav pieejama, faila nosaukuma iegūšanai no ceļa var izmantot citas metodes. Viena no alternatīvām ietver virkņu bibliotēkā pieejamo virkņu manipulācijas funkciju izmantošanu. Šeit ir piemērs:
#include
std::string get_filename_old(std::string ceļš){
std::size_t found = ceļš.atrast_pēdējais_of(“/\”);
atgriešanās ceļš.substr(atrasts+1);
}
Rezumējot, faila nosaukuma izvilkšana no ceļa ir iespējama, izmantojot failu sistēmas bibliotēku programmā C++. Ir svarīgi pārzināt bibliotēkas funkcijas, jo failu apstrāde ir izplatīta daudzos programmēšanas uzdevumos.