Selvfølgelig, lad os dykke ned i emnet for at få et filnavn fra en sti ved hjælp af C++.
Introduktion
Udpakning af filnavnet fra en sti er en hyppig opgave i programmering, især i operationer, der involverer filhåndtering. Denne artikel giver en dybdegående forklaring på, hvordan du udfører denne opgave ved hjælp af C++. Ved slutningen af artiklen vil du være i stand til at forstå og implementere en løsning på dette problem.
Løsningen
Løsningen involverer brug af de indbyggede funktioner, som leveres af C++ Standard Library. Biblioteket, vi vil fokusere på, er filsystembiblioteket, introduceret i C++17. Det giver forskellige funktioner til at manipulere filer og mapper.
#include
std::streng get_filename(std::strengsti){
returner std::filsystem::sti(sti).filnavn().streng();
}
Forståelse af koden
Get_filename-funktionen tager et strengargument – sti og returnerer filnavnet. Funktionen bruger filsystembiblioteket. Vi opretter et filsystem::path-objekt med den angivne stistreng og bruger metoden filename() til at opnå filnavnet. Filnavnet konverteres derefter til en streng ved hjælp af string() metoden og returneres af funktionen.
- Den første linje er, hvor vi inkluderer filsystembiblioteket i vores kode.
- Get_filename-funktionen er defineret med en streng-argumentsti.
- Vi opretter et filsystem::path-objekt med stistrengen.
- Filnavnsmetoden kaldes på filsystem::sti-objektet for at få filnavnet.
- Filnavnet konverteres derefter til en streng ved hjælp af string()-metoden.
Filsystembiblioteket
C++17-standarden introducerede filsystembiblioteket, som består af en række klasser og funktioner rettet mod at udføre operationer på filstier, filer og mapper. En af dens klasser – filesystem::path, bruges i vores løsning til at udtrække filnavnet fra stien.
Dette bibliotek giver dig mulighed for at udføre operationer såsom at læse, skrive, omdøbe filer, oprette og fjerne mapper og så videre, hvilket forenkler filsystemmanipulationer i C++ drastisk.
Alternative Metoder
I tilfælde hvor filsystembiblioteket ikke er tilgængeligt, kan andre metoder bruges til at udtrække filnavnet fra en sti. Et alternativ involverer brugen af strengmanipulationsfunktioner, der er tilgængelige i strengbiblioteket. Her er et eksempel:
#include
std::streng get_filename_old(std::strengsti){
std::size_t found = path.find_last_of(“/\”);
retursti.substr(fundet+1);
}
For at opsummere er det muligt at udtrække et filnavn fra en sti ved at bruge filsystembiblioteket i C++. Det er vigtigt at være bekendt med bibliotekets funktionaliteter, da filhåndtering er udbredt i mange programmeringsopgaver.