Løst: Hent filer i mappen

Sidste ændring: 09/11/2023
Forfatter: C SourceTrail

Ja, lad os starte.

Hent filer i en mappe er en almindelig opgave, der praktiseres i programmeringsverdenen. At samle listen over filer i en mappe er en handling, du sandsynligvis vil støde på, uanset om det er til dataindlæsning, datasortering eller blot til manipulationsformål. At arbejde med mapper i programmeringssprog som C++ kan være ret vanskeligt og kræver en god forståelse af sprogets standardbibliotek og dets funktioner.

C++-løsning til mappefiladgang

For at få filer i en mappe, vil vi bruge standard filsystembiblioteket introduceret i C++17. Dette bibliotek hjælper os med at håndtere filer og mapper. Vi vil hovedsageligt fokusere på directory_iterator og sti under dette bibliotek, som er mest relevante for vores problem.

Den næste funktion kan bruges til at hente alle filerne i en mappe:

#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; } } [/kode]

Trin for trin kode forklaring

Lad os nedbryde funktionen og forstå, hvordan den fungerer.

  • Funktionen begynder med erklæringen `void get_files_in_dir(const std::string& directory)`. Dette erklærer en funktion ved navn 'get_files_in_dir', der tager en const strengreference som et argument og returnerer intet (void). Argumentet repræsenterer den mappe, hvorfra vi ønsker at hente filer.
  • Dernæst bruges en rækkebaseret for-løkke til at gennemgå hver post i biblioteket. `std::filesystem::directory_iterator(directory)` opretter et iterativt objekt, som kan gå gennem hver fil i den angivne mappe.
  • Stien til hver fil i mappen udskrives med `std::cout << entry.path() << std::endl;` 'path()' er en funktion af klassen 'directory_entry' og 'entry' er et objekt af samme klasse. 'path()' returnerer en 'sti'-type, der indeholder hele stien til 'entry'.

Kraften i i C++

Filhåndtering bliver meget vigtig, når det kommer til datalagring og -hentning. Vi skal gemme data på en sådan måde, at vi hurtigt kan hente dem på et senere tidspunkt. Et af de mest almindelige steder, hvor vi opbevarer data, er i filer.

C++ bibliotek introduceret i C++17 giver faciliteter til at udføre operationer på filsystemer og deres komponenter, såsom stier, almindelige filer og mapper. Derudover tilbyder den portabilitet og brugervenlighed til fil I/O-operationer i C++. Dette sikrer, at en programmør ikke behøver at bekymre sig om det underliggende OS, mens han arbejder med filer.

Tilgængeligheden af ​​klasser, som directory_iterator og sti, gør det lettere at manipulere og navigere gennem mapper. Den kode, vi diskuterede, er en simpel illustration af, hvor potent og udviklervenligt dette bibliotek er.

Almindelige applikationer af Directory File Access

Almindelige brugstilfælde til at hente filer i en mappe er dataintensive applikationer, der skal sortere, indlæse eller manipulere forskellige datafiler, der er gemt i en mappestruktur. Det bruges til at automatisere opgaver som at kopiere eller flytte filer, sortere filer baseret på typer eller generelt til at få adgang til data spredt på tværs af flere filer i en mappe.

Husk, at nøglen til at mestre fil- og biblioteksadgang ligger i at forstå og effektivt bruge de tilgængelige funktioner i filsystembiblioteket. Det kan i høj grad lette dit arbejde, især når du har at gøre med et stort antal filer.

Relaterede indlæg: