C++程序中统计一个目录下的文件数量

如果一个目录下不包含其他目录,只有文件,怎么得到文件数量?这么容易的一个问题,你会用什么方法去做?

我喜欢利用shell来帮忙:

在程序中构造shell命令:ls 目录名 | wc -l

然后执行它,得到返回的结果,就结束了。

 

执行一个shell命令并获取其返回结果的函数示例:

 

std::string getCmdRes(const std::string sc)

{

FILE* crs = popen(sc.c_str(), "r"); // execute the shell command 

char result[1024] = "0";

fread(result, sizeof(char), sizeof(result), crs);


if (NULL != crs)

{

fclose(crs);

crs = NULL;

}


std::string res = result;

return res;

}

 

将shell命令作为参数传入,返回的就是执行结果了,简单吧。

 

类似地,如果有其他可以用shell命令很容易实现的运算,我们也可以这样“偷懒”,直接在C++里“调用”它。

 

你可能感兴趣的:(C++程序中统计一个目录下的文件数量)