Ratkaistu: hae tiedostonimi polusta

Viimeisin päivitys: 09/11/2023
Kirjoittaja: C SourceTrail

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ä.

Related viestiä: