C++ - egy mappa teljes tartalmának beolvasása. A mappa változatlan, előre megadott. Alapszinten. Hogyan?
Soha nem csináltam még ilyet. Google-ben nem találtam olyan oldalt, ami alapszinten elmagyarázná.
A lényeg az lenne, hogy pl. FindFirstFile és FindNextFile-vel végig kellene görgetni egys mappán ("./mappa"), viszont a fájltípusokkal és folyamatokkal nagyon nem vagyok tisztában.
"mappa teljes tartalmának beolvasása"
Hová, milyen célra? Mibe?
Ez a mappában lévő fájlokat és mappákat is kiírja:
int _tmain(int argc, _TCHAR* argv[])
{
char* Directory = "C:\\*"; // Ahol keresse a fájlokat. C:\\ ez a mappa és a * a keresési feltétel ami annyit tesz, hogy minden.
WIN32_FIND_DATAA FindFileData; // Struct ami tárolja a fájl adatait
HANDLE hFind; // Handle a fájlhoz
if ((hFind = FindFirstFileA(Directory, &FindFileData)) != INVALID_HANDLE_VALUE) // Ha sikerült az adott mappában fájlt találni
{
do
{
std::cout << FindFileData.cFileName << std::endl; // Fájl nevének kiírása
} while (FindNextFileA(hFind, &FindFileData) != NULL); // Egészen addig amíg van fájl
FindClose(hFind); // Handle bezárása
}
return 0;
}
Ez oprendszer függő, így maga a C++ nyelv nem tudja megoldani ezt a problémát, szükséged lesz egy API-ra.
A 2# megoldási például WinAPi-t használ, így Windowsra tökéletesen működik.
Az új C++ szabványhoz tartozik egy kísérleti filesystem függvénykönyvtár, ezt az <experimental/filesystem> headerben éred el.
Ezenkívül megoldás lehet a boost és Qt használata is, ez így elsőre bonyolultnak tűnhet, de gyakorlatilag minden nagyobb C++ projekt használ valami keretrendszert.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!