Seveda, začnimo.
Pridobivanje datotek v imeniku je pogosto opravilo v svetu programiranja. Zbiranje seznama datotek v imeniku je operacija, s katero se boste verjetno srečali, pa naj bo to za nalaganje podatkov, razvrščanje podatkov ali preprosto za namene manipulacije. Delo z imeniki v programskih jezikih, kot je C++, je lahko precej zapleteno in zahteva dobro razumevanje standardne knjižnice jezika in njenih funkcij.
Rešitev C++ za dostop do imeniških datotek
Za pridobivanje datotek v imeniku bomo uporabljali standardno knjižnico datotečnega sistema, predstavljeno v C++17. Ta knjižnica nam pomaga pri delu z datotekami in imeniki. Osredotočili se bomo predvsem na directory_iterator in pot pod to knjižnico, ki sta najbolj pomembna za naš problem.
Naslednjo funkcijo lahko uporabite za pridobivanje vseh datotek v imeniku:
#include
#include
void get_files_in_dir(const std::string& imenik) {
for (const auto & entry : std::filesystem::directory_iterator(directory)) {
std::cout << entry.path() << std::endl; } } [/Koda]
Razlaga kode po korakih
Razčlenimo funkcijo in razumemo, kako deluje.
- Funkcija se začne z deklaracijo `void get_files_in_dir(const std::string& directory)`. To deklarira funkcijo z imenom `get_files_in_dir`, ki vzame referenco niza const kot argument in ne vrne ničesar (void). Argument predstavlja imenik, iz katerega želimo pridobiti datoteke.
- Nato se za prehod skozi vsak vnos v imeniku uporabi zanka for na podlagi obsega. `std::filesystem::directory_iterator(directory)` ustvari iterativni objekt, ki lahko gre skozi vsako datoteko v navedenem imeniku.
- Pot do vsake datoteke v imeniku je natisnjena z `std::cout << entry.path() << std::endl;` 'path()' je funkcija razreda 'directory_entry' in 'entry' je objekt istega razreda. 'path()' vrne vrsto 'path', ki vsebuje celotno pot 'entry'.
Moč v C++
Ravnanje z datotekami postane zelo pomembno, ko gre za shranjevanje in iskanje podatkov. Podatke moramo shraniti tako, da jih lahko pozneje hitro pridobimo. Eno najpogostejših mest, kjer shranjujemo podatke, so datoteke.
C++
Razpoložljivost razredov, kot sta directory_iterator in pot, olajša manipulacijo in krmarjenje po imenikih. Koda, o kateri smo razpravljali, je preprosta ilustracija tega, kako močna in razvijalcem prijazna je ta knjižnica.
Pogoste uporabe dostopa do imeniških datotek
Običajni primeri uporabe za pridobivanje datotek v imeniku so podatkovno intenzivne aplikacije, ki morajo razvrščati, nalagati ali manipulirati z različnimi podatkovnimi datotekami, shranjenimi v strukturi imenika. Uporablja se za avtomatizacijo opravil, kot je kopiranje ali premikanje datotek, razvrščanje datotek glede na vrste ali na splošno za dostop do podatkov, razporejenih po več datotekah v imeniku.
Ne pozabite, da je ključ do obvladovanja dostopa do datotek in imenikov v razumevanju in učinkoviti uporabi razpoložljivih funkcij v knjižnici datotečnega sistema. Lahko vam zelo olajša delo, še posebej, če imate opravka z velikim številom datotek.