2010-11-17 108 views
0

我想在c/C++ .i中使用dirent.h文件夹中的所有文件名,但它显示dirent.h上的错误? 我该怎么处理? 有什么办法,而不是dirent.h? 在此先感谢关于文件夹中的文件名

+0

和OS /运行时间是什么? http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1046380353&id=1044780608 – khachik 2010-11-17 11:55:10

+0

你需要告诉我们你正在运行什么,你得到什么错误和你正在使用的代码。否则,我们不能帮助 – 2010-11-17 11:57:49

+0

看起来像一个汇编错误,但我们怎么能确定? – bmargulies 2010-11-17 12:09:41

回答

2

Boost.Filesystem这样做是否便携。它的tutorial解释了如何执行这个确切的任务。总之:

#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; 
} 

如果你想使用dirent.h,包括它:

#include <sys/types.h> /* required before including sys/dirent.h! */ 
#include <sys/dirent.h> 
相关问题