Toki, syvennytään aiheeseen tiedostonimen saaminen polusta C++:n avulla.
esittely
Tiedostonimen purkaminen polusta on usein ohjelmoinnin tehtävä, erityisesti tiedostojen käsittelyyn liittyvissä toiminnoissa. Tämä artikkeli sisältää perusteellisen selvityksen tämän tehtävän suorittamisesta C++:lla. Artikkelin loppuun mennessä pystyt ymmärtämään ja toteuttamaan ratkaisun tähän ongelmaan.
Ratkaisu
Ratkaisu sisältää C++ Standard Libraryn tarjoamien sisäänrakennettujen toimintojen käyttämisen. Kirjasto, johon keskitymme, on tiedostojärjestelmäkirjasto, joka esiteltiin C++17:ssä. Se tarjoaa erilaisia toimintoja tiedostojen ja hakemistojen käsittelyyn.
#sisältää
std::merkkijono get_filename(std::merkkijonopolku){
return std::tiedostojärjestelmä::polku(polku).tiedostonimi().merkkijono();
}
Koodin ymmärtäminen
Get_filename-funktio ottaa merkkijonoargumentin – polun ja palauttaa tiedostonimen. Toiminto käyttää tiedostojärjestelmän kirjastoa. Luomme tiedostojärjestelmä::path-objektin annetulla polkumerkkijonolla ja käytämme tiedostonimi()-menetelmää tiedostonimen saamiseksi. Tiedostonimi muunnetaan sitten merkkijonoksi string()-menetelmällä ja funktio palauttaa sen.
- Ensimmäinen rivi on paikka, jossa sisällytämme tiedostojärjestelmäkirjaston koodiimme.
- Get_filename-funktio määritellään merkkijonoargumenttipolulla.
- Luomme tiedostojärjestelmä::path-objektin polkumerkkijonolla.
- Filename-menetelmää kutsutaan tiedostojärjestelmä::path-objektissa tiedostonimen saamiseksi.
- Tiedostonimi muunnetaan sitten merkkijonoksi string()-menetelmällä.
Tiedostojärjestelmän kirjasto
C++17-standardi esitteli tiedostojärjestelmäkirjaston, joka koostuu sarjasta luokkia ja toimintoja, joiden tarkoituksena on suorittaa toimintoja tiedostopoluilla, tiedostoilla ja hakemistoilla. Yhtä sen luokista - tiedostojärjestelmä::polku - käytetään ratkaisussamme tiedostonimen poimimiseen polusta.
Tämän kirjaston avulla voit suorittaa toimintoja, kuten lukemisen, kirjoittamisen, tiedostojen uudelleennimeämisen, hakemistojen luomisen ja poistamisen ja niin edelleen, mikä yksinkertaistaa tiedostojärjestelmän käsittelyä huomattavasti C++:ssa.
Vaihtoehtoiset menetelmät
Tapauksissa, joissa tiedostojärjestelmän kirjasto ei ole käytettävissä, voidaan käyttää muita menetelmiä tiedostonimen purkamiseen polusta. Yksi vaihtoehto sisältää merkkijonokirjastossa saatavilla olevien merkkijonojen käsittelytoimintojen käyttämisen. Tässä on esimerkki:
#sisältää
std::merkkijono get_filename_old(std::merkkijonopolku){
std::size_t found = polku.find_last_of("/\");
paluupolku.substr(found+1);
}
Yhteenvetona voidaan todeta, että tiedostonimen purkaminen polusta on mahdollista käyttämällä C++:n tiedostojärjestelmäkirjastoa. Kirjaston toimintojen tunteminen on välttämätöntä, koska tiedostojen käsittely on yleistä monissa ohjelmointitehtävissä.