Rešeno: pridobi ime datoteke iz poti

Zadnja posodobitev: 09/11/2023

Seveda, poglobimo se v temo pridobivanja imena datoteke iz poti s pomočjo C++.

Uvod
Ekstrahiranje imena datoteke iz poti je pogosta naloga pri programiranju, zlasti pri operacijah, ki vključujejo ravnanje z datotekami. Ta članek ponuja poglobljeno razlago, kako to nalogo opraviti s C++. Do konca članka boste lahko razumeli in implementirali rešitev te težave.

Rešitev
Rešitev vključuje uporabo vgrajenih funkcij, ki jih ponuja standardna knjižnica C++. Knjižnica, na katero se bomo osredotočili, je knjižnica datotečnega sistema, predstavljena v C++17. Ponuja različne funkcije za upravljanje datotek in imenikov.

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

Razumevanje kodeksa
Funkcija get_filename sprejme argument niza – pot in vrne ime datoteke. Funkcija uporablja knjižnico datotečnega sistema. Ustvarimo objekt filesystem::path s podanim nizom poti in uporabimo metodo filename(), da pridobimo ime datoteke. Ime datoteke se nato z metodo string() pretvori v niz in vrne funkcija.

  • V prvi vrstici vključimo knjižnico datotečnega sistema v našo kodo.
  • Funkcija get_filename je definirana s potjo argumenta niza.
  • Ustvarimo objekt filesystem::path z nizom poti.
  • Metoda imena datoteke se pokliče na predmetu datotečni sistem::pot, da se pridobi ime datoteke.
  • Ime datoteke se nato z metodo string() pretvori v niz.

Knjižnica datotečnega sistema

Standard C++17 je predstavil knjižnico datotečnega sistema, ki je sestavljena iz niza razredov in funkcij, namenjenih izvajanju operacij na poteh datotek, datotekah in imenikih. Eden od njegovih razredov – filesystem::path, se v naši rešitvi uporablja za ekstrahiranje imena datoteke iz poti.

Ta knjižnica vam omogoča izvajanje operacij, kot so branje, pisanje, preimenovanje datotek, ustvarjanje in odstranjevanje imenikov itd., kar drastično poenostavi manipulacije z datotečnim sistemom v C++.

alternativne metode

V primerih, ko knjižnica datotečnega sistema ni na voljo, je mogoče uporabiti druge metode za ekstrahiranje imena datoteke iz poti. Ena možnost vključuje uporabo funkcij za manipulacijo nizov, ki so na voljo v knjižnici nizov. Tukaj je primer:

#include
std::string get_filename_old(std::string pot){
std::size_t found = path.find_last_of(“/\”);
povratna pot.substr(najdeno+1);
}

Če povzamemo, ekstrahiranje imena datoteke iz poti je mogoče doseči z uporabo knjižnice datotečnega sistema v C++. Bistveno je, da ste seznanjeni s funkcijami knjižnice, saj obravnavanje datotek prevladuje pri številnih programskih nalogah.

Podobni objav: