2010-11-17 5 views
0

je veux obtenir tous les noms de fichiers dans le dossier en c/C++ .i utiliser dirent.h mais il montre une erreur sur le dirent.h? comment dois-je procéder? Est-ce un moyen plutôt que dirent.h? Merci d'avancesur les noms de fichiers dans le dossier

+0

Et le système d'exploitation/exécution est? http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1046380353&id=1044780608 – khachik

+0

Vous devez nous indiquer ce que vous utilisez, l'erreur que vous obtenez et le code que vous utilisez. Sinon, nous ne pouvons pas aider –

+0

Cela ressemble à une erreur de compilation, mais comment pouvons-nous dire à coup sûr? – bmargulies

Répondre

2

Boost.Filesystem fait cela de manière portable. Son tutorial explique comment effectuer cette tâche exacte. En bref:

#include <algorithm> 
#include <boost/filesystem.hpp> 
#include <iostream> 

namespace fs = boost::filesystem; 
using namespace std; 

int main(int argc, char *argv[]) 
{ 
    fs::path p(argv[1]); 

    if (fs::exists(p) && fs::is_directory(p)) 
     copy(fs::directory_iterator(p), fs::directory_iterator(), 
      ostream_iterator<fs::directory_entry>(cout, "\n")); 

    return 0; 
} 

Si vous ne souhaitez utiliser dirent.h, comprennent comme:

#include <sys/types.h> /* required before including sys/dirent.h! */ 
#include <sys/dirent.h> 
Questions connexes