参考了网络上各路大神的实现方法。主要使用了io.h库
-
#include <iostream>
-
#include <cstring>
-
#include <io.h>
-
using
namespace
std;
-
void visitDir(const char* dir)
-
{
-
char dirNew[
100];
-
strcpy(dirNew, dir);
-
strcat(dirNew,
"\\*.docx");
// 在目录后面加上"\\*.*"进行第一次搜索
-
-
intptr_t handle;
-
_finddata_t findData;
-
-
handle = _findfirst(dirNew, &findData);
-
if (handle ==
-1)
// 检查是否成功
-
{
-
datafile.close();
-
return;
-
}
-
do
-
{
-
if (findData.attrib & _A_SUBDIR)
-
{
-
if(
strcmp(findData.name,
".") ==
0 ||
strcmp(findData.name,
"..") ==
0)
-
continue;
-
cout << findData.name <<
"\t<dir>\n";
// 在目录后面加上"\\"和搜索到的目录名进行下一次搜索
-
strcpy(dirNew, dir);
-
strcat(dirNew,
"\\");
-
strcat(dirNew, findData.name);
-
-
visitDir(dirNew);
-
}
-
else
-
cout << findData.name <<
"\t" << findData.size <<
" bytes.\n";
-
}
while (_findnext(handle, &findData) ==
0);
-
_findclose(handle);
-
}
-
int main()
-
{
-
char dir[
100];
-
cout<<
"Enter a directory:";
-
cin.getline(dir,
100);
-
visitDir(dir);
-
return
0;
-
}