Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » FAQ Linux » Einlesen eines Verzeichnisinhaltes

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.12.2002, 20:15 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Erstellt von virtual
Das folgende Programm ist super simpel und dient zur Demonstration,
wie man Verzeichnisinhalte in Linux einliest
(laesst sich so auf jedes andere UNIX System portieren).


C++:
#include <string>
#include <vector>
#include <dirent.h>
#include <errno.h>

using namespace std;

vector<string>

my_readdir(const string& p_strDir)
{
  vector vstrReturn;
  DIR* poDir;
  struct dirent* poEntry;
  
  // Open the directory
  poDir = opendir(p_strDir.c_str());
  if (NULL==poDir)
  {
    throw errno;
  }

  // Read in loop
  while (NULL!=(poEntry=readdir(poDir)))
  {
    vstrReturn.push_back(string(poEntry->d_name));
  }
  if (EBADF == errno)
  {
    closedir(poDir);
    throw EBADF;
  }

  // cleanup and return
  closedir(poDir);
  return vstrReturn;
}

int main(int /*argc*/,char** argv)
{
  try
  {
    argv++;
    while(*argv)
    {
      cout << "Listing of directory " << (*argv) << ":" << endl;
      vector<string> entries = my_readdir(string(*argv));

      for(vector<string>::iterator i=entries.begin();i!=entries.end();++i)
      {
        cout << (*i) << endl;
      }
      argv++;
    }
  }
  catch (int error)
  {
    cerr << "ERROR: " << strerror(errno) << endl;
    return 1;
  }
  return 0;
}


--
class God : public ChuckNorris { };

Dieser Post wurde am 13.01.2003 um 15:22 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ FAQ Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: