Naravno, počnimo.
Preuzimanje datoteka u direktorij je uobičajen zadatak koji se praktikuje u svijetu programiranja. Prikupljanje liste datoteka u direktoriju je operacija s kojom ćete se vjerovatno susresti bilo da se radi o učitavanju podataka, sortiranju podataka ili jednostavno u svrhu manipulacije. Rad sa direktorijumima u programskim jezicima kao što je C++ može biti prilično težak i zahteva dobro razumevanje standardne biblioteke jezika i njenih funkcija.
C++ rješenje za pristup datotekama direktorija
Za dobijanje fajlova u direktorijumu, koristićemo standardnu biblioteku sistema datoteka uvedenu u C++17. Ova biblioteka nam pomaže da se nosimo sa datotekama i direktorijumima. Uglavnom ćemo se fokusirati na directory_iterator i putanju ispod ove biblioteke, koji su najrelevantniji za naš problem.
Sljedeća funkcija se može koristiti za preuzimanje svih datoteka u direktoriju:
#include
#include
void get_files_in_dir(const std::string& directory) {
for (const auto & entry : std::filesystem::directory_iterator(directory)) {
std::cout << entry.path() << std::endl; } } [/code]
Korak po korak objašnjenje koda
Razložimo funkciju i shvatimo kako funkcionira.
- Funkcija počinje deklaracijom `void get_files_in_dir(const std::string& directory)`. Ovo deklarira funkciju pod nazivom `get_files_in_dir` koja uzima referencu const stringa kao argument i ne vraća ništa (void). Argument predstavlja direktorij iz kojeg želimo preuzeti datoteke.
- Zatim se koristi petlja zasnovana na rasponu za prolazak kroz svaki unos u direktoriju. `std::filesystem::directory_iterator(directory)` kreira iterativni objekt koji može proći kroz svaki fajl u navedenom direktoriju.
- Putanja do svake datoteke u direktoriju je ispisana sa `std::cout << entry.path() << std::endl;` 'path()' je funkcija klase 'directory_entry' i 'entry' je objekat iste klase. 'path()' vraća tip 'path' koji sadrži kompletnu putanju 'entry'.
Moć u C++
Rukovanje datotekama postaje veoma važno kada je u pitanju skladištenje i preuzimanje podataka. Moramo pohraniti podatke na takav način da ih možemo brzo dohvatiti u nekom kasnijem trenutku. Jedno od najčešćih mjesta gdje pohranjujemo podatke su datoteke.
C++
Dostupnost klasa, kao što su directory_iterator i path, olakšava manipulaciju i navigaciju kroz direktorije. Kod o kojem smo razgovarali je jednostavna ilustracija koliko je ova biblioteka moćna i pogodna za programere.
Uobičajene aplikacije pristupa datotekama direktorija
Uobičajeni slučajevi upotrebe za dobivanje datoteka u direktorij su aplikacije koje intenzivno koriste podatke koje trebaju sortirati, učitavati ili manipulirati raznim datotekama podataka pohranjenim u strukturi direktorija. Koristi se za automatizaciju zadataka kao što su kopiranje ili premještanje datoteka, sortiranje datoteka na osnovu tipova ili općenito za pristup podacima raspoređenim u više datoteka u direktoriju.
Zapamtite, ključ za savladavanje pristupa datotekama i direktorijumima leži u razumijevanju i djelotvornoj upotrebi dostupnih funkcija u biblioteci sistema datoteka. To vam može uvelike olakšati rad, posebno kada radite s velikim brojem datoteka.