Gå til innhold

C++ Hvordan lese filer og undermapper?


Anbefalte innlegg

Videoannonse
Annonse
#include <iostream>

// win32
#include <windows.h>
#include <tchar.h>

// glib
#include <glib.h>


// linker glib (kan også gjøres i prosjektoppsettet)
// (husk å ha libglib-2.0-0.dll tilgjengelig)
#pragma comment(lib, "glib-2.0.lib")


// vi definerer tcout for bruk med TCHAR
// (TCHAR er wchar_t når UNICODE er definert, ellers char)
#if defined(UNICODE)
   #define tcout std::wcout
#else
   #define tcout std::cout
#endif

// win32 implementasjon
void findfile_win32()
{
   WIN32_FIND_DATA fd;
   HANDLE findHandle = FindFirstFile(_T("c:\\*.*"), &fd );

   if(findHandle != INVALID_HANDLE_VALUE)
   {
       do
       {
           // du kan bruke fd til å sjekke hva slags
           // filobjekt som er funnet. eks:
           // if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { }

           tcout << fd.cFileName << std::endl;
       }
       while(FindNextFile(findHandle, &fd));
   }

   CloseHandle(findHandle);
}


// glib implementasjon
void findfile_glib()
{
   GDir* dir = g_dir_open("c:\\", 0, 0);

   if(dir)
   {
       while(const gchar* fname = g_dir_read_name(dir) )
       {
           // før du skriver ut strengen må du strengt tatt
           // konvertere den fra UTF-8.

           std::cout << fname << std::endl;
       }
   }

   g_dir_close(dir);
}


int main()
{
   findfile_win32();

   tcout << _T("\n\n----------------\n\n");

   findfile_glib();

   tcout << std::flush;
}

Endret av kjetil7
Lenke til kommentar
Jeg vet ikke hva trådstarter har i tankene, men det er jo mulig han vil lage et enkelt program for å lære.

 

Det finnes jo sikkert 1000er av språk som det er enklere å lage "hello world" i enn c.

6913865[/snapback]

 

 

Er vel mesteparten for å lære ja....

Har lite peiling egentlig... (noen som anbefaler noen bøker?)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...