这个例子统计的是一个文件夹下 文件以及文件夹的个数。但是假如文件夹下还有文件,程序将不会向向下一级继续统计。
编程注意2点:
1)利用命令行的 dir /b 文件夹名 | find /v /c "::" 指令来统计文件夹内的文件+文件夹数目;
2)这个指令在另一个进程里运行。获取的结果通过fgets函数返回一个字符串。将字符串转换为数字就是统计结果
例如统计如下文件夹:
代码:
#include <stdio.h>
#include <stdlib.h>
int iGetCmdResult(char * pCmd, int iLen)
{
FILE *fp = _popen(pCmd, "r");
int k = 0;
if(fp != NULL)
{
char arrTmp[1024] = {0};
if(fgets(arrTmp, iLen, fp) != NULL)
{
return atoi(arrTmp);
}
}
return 0;
}
int main(void)
{
char * pCmd = "dir \/b E:\\tmp | find \/v \/c \"::\"";
int iLen = 100;
int iCount = iGetCmdResult(pCmd, iLen);
printf("file count = %d\n", iCount);
char c;
scanf(&c);
return 0;
}
效果: