输出某一文件夹下的所有文件(包括子文件夹里的)
#include "stdafx.h"
#include <io.h>
#include <string.h>
#pragma warning(disable: 4996)
unsigned int ListDir(const char* pchData)
{
const int MAXLEN = 512;
unsigned int filenum = 0;
_finddata_t fdata = { 0 };
long handleFind = -1;
char tempdir[MAXLEN] = { 0 };
strcat(tempdir, pchData);
strcat(tempdir, "\\*.*");
handleFind = _findfirst(tempdir, &fdata);
if (-1 == handleFind)
return 0;
int ret = 0;
while (ret != -1)
{
if (fdata.attrib != _A_SUBDIR)
{
if (strcmp(fdata.name, "..") != 0 &&
strcmp(fdata.name, ".") != 0)
{
char dir[MAXLEN] = { 0 };
strcat(dir, pchData);
strcat(dir, "\\");
strcat(dir, fdata.name);
printf("%s\n", dir);
filenum++;
}
}
else
{
if (strcmp(fdata.name, "..") != 0 &&
strcmp(fdata.name, ".") != 0)
{
char pdir[MAXLEN] = { 0 };
strcat(pdir, pchData);
strcat(pdir, "\\");
strcat(pdir, fdata.name);
filenum += ListDir(pdir);
}
}
ret = _findnext(handleFind, &fdata);
}
_findclose(handleFind);
return filenum;
}
int main(void)
{
unsigned int filenum = ListDir("E:\\123t");
printf("共计%d个文件\n", filenum);
return 0;
}