Riješeno: dohvati naziv datoteke iz staze

Naravno, pozabavimo se temom dobivanja naziva datoteke iz staze uz pomoć C++.

Uvod
Izdvajanje naziva datoteke iz staze je čest zadatak u programiranju, posebno u operacijama koje uključuju rukovanje datotekama. Ovaj članak daje detaljno objašnjenje kako izvršiti ovaj zadatak koristeći C++. Do kraja članka moći ćete razumjeti i implementirati rješenje ovog problema.

Rješenje
Rješenje uključuje korištenje ugrađenih funkcija koje pruža C++ standardna biblioteka. Biblioteka na koju ćemo se fokusirati je biblioteka datotečnog sustava, predstavljena u C++17. Omogućuje razne funkcije za rukovanje datotekama i direktorijima.

#include
std::string get_filename(std::string staza){
return std::filesystem::path(path).filename().string();
}

Razumijevanje Kodeksa
Funkcija get_filename uzima argument niza – putanju i vraća naziv datoteke. Funkcija koristi biblioteku datotečnog sustava. Stvaramo objekt datotečni sustav::staza s navedenim nizom staze i koristimo metodu filename() za dobivanje naziva datoteke. Naziv datoteke se zatim pretvara u niz pomoću metode string() i vraća ga funkcija.

  • Prvi red je mjesto gdje uključujemo biblioteku datotečnog sustava u naš kod.
  • Funkcija get_filename definirana je stazom argumenta niza.
  • Stvaramo filesystem::path objekt s nizom staze.
  • Metoda naziva datoteke poziva se na objektu datotečni sustav::put da bi se dobio naziv datoteke.
  • Naziv datoteke se zatim pretvara u niz pomoću metode string().

Biblioteka datotečnog sustava

Standard C++17 uveo je biblioteku datotečnog sustava koja se sastoji od niza klasa i funkcija usmjerenih na izvođenje operacija na stazama datoteka, datotekama i direktorijima. Jedna od njegovih klasa – filesystem::path, koristi se u našem rješenju za izdvajanje naziva datoteke iz staze.

Ova biblioteka vam omogućuje izvođenje operacija kao što su čitanje, pisanje, preimenovanje datoteka, stvaranje i uklanjanje direktorija i tako dalje, drastično pojednostavljujući manipulacije datotečnim sustavom u C++.

Alternativne metode

U slučajevima kada biblioteka datotečnog sustava nije dostupna, mogu se koristiti druge metode za izdvajanje naziva datoteke iz staze. Jedna alternativa uključuje korištenje funkcija za manipulaciju nizovima dostupnih u knjižnici nizova. Evo primjera:

#include
std::string get_filename_old(std::string staza){
std::size_t found = path.find_last_of(“/\”);
povratni put.substr(pronađen+1);
}

Ukratko, izdvajanje naziva datoteke iz staze moguće je pomoću biblioteke datotečnog sustava u C++. Bitno je upoznati se s funkcijama biblioteke jer je rukovanje datotekama prevladavajuće u mnogim programskim zadacima.

Povezani postovi:

Ostavite komentar