Naravno, hajde da se udubimo u temu dobijanja naziva datoteke iz putanje uz pomoć C++.
Uvod
Izdvajanje imena datoteke iz putanje je čest zadatak u programiranju, posebno u operacijama koje uključuju rukovanje datotekama. Ovaj članak pruža detaljno objašnjenje o tome kako postići ovaj zadatak koristeći C++. Do kraja članka moći ćete razumjeti i implementirati rješenje za ovaj problem.
Rjesenje
Rješenje uključuje korištenje ugrađenih funkcija koje pruža C++ standardna biblioteka. Biblioteka na koju ćemo se fokusirati je biblioteka sistema datoteka, uvedena u C++17. Pruža različite funkcionalnosti za manipulaciju datotekama i direktorijima.
#include
std::string get_filename(std::string path){
return std::filesystem::path(path).filename().string();
}
Razumijevanje Kodeksa
Funkcija get_filename uzima argument string – putanju i vraća ime datoteke. Funkcija koristi biblioteku sistema datoteka. Kreiramo filesystem::path objekat sa navedenim nizom putanje i koristimo metodu filename() da dobijemo ime datoteke. Ime datoteke se zatim konvertuje u string pomoću metode string() i vraća ga funkcija.
- Prvi red je mjesto gdje uključujemo biblioteku sistema datoteka u naš kod.
- Funkcija get_filename definirana je putem niza argumenta.
- Kreiramo filesystem::path objekat sa nizom putanje.
- Metoda filename se poziva na filesystem::path objektu da dobije ime datoteke.
- Ime datoteke se zatim konvertuje u string pomoću metode string().
Biblioteka sistema datoteka
Standard C++17 uveo je biblioteku sistema datoteka, koja se sastoji od niza klasa i funkcija koje imaju za cilj izvođenje operacija na putanjama datoteka, datotekama i direktorijumima. Jedna od njegovih klasa – filesystem::path, koristi se u našem rješenju za izdvajanje imena datoteke iz putanje.
Ova biblioteka vam omogućava da izvodite operacije kao što su čitanje, pisanje, preimenovanje datoteka, kreiranje i uklanjanje direktorijuma i tako dalje, pojednostavljujući drastično manipulaciju sistemom datoteka u C++.
alternativne metode
U slučajevima kada biblioteka sistema datoteka nije dostupna, druge metode se mogu koristiti za izdvajanje naziva datoteke iz staze. Jedna alternativa uključuje korištenje funkcija za manipulaciju nizovima dostupnih u biblioteci stringova. Evo primjera:
#include
std::string get_filename_old(std::string path){
std::size_t found = path.find_last_of(“/\”);
povratna staza.substr(pronađen+1);
}
Da sumiramo, izdvajanje imena datoteke iz putanje moguće je pomoću biblioteke sistema datoteka u C++. Bitno je biti upoznat sa funkcionalnostima biblioteke jer rukovanje datotekama preovlađuje u mnogim programskim zadacima.