admin管理员组

文章数量:1530284

这个例子统计的是一个文件夹下 文件以及文件夹的个数。但是假如文件夹下还有文件,程序将不会向向下一级继续统计。

编程注意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;
}


效果:



本文标签: 文件夹命令行个数文件Windows