#include
#include
#include
#include "stdlib.h"
const int MAXLEN = 1024; //定义最大目录长度
unsigned long FILECOUNT = 0; //记录文件数量
void ListDir(const char* pchData)
{
_finddata_t fdata; //定义文件查找结构对象
long done;
char tempdir[MAXLEN] = {0}; //定义一个临时字符数组
strcat(tempdir, pchData); //连接字符串
strcat(tempdir, "\*.rar"); //连接字符串(搜索以RAR结尾的文件)
//cout << tempdir << endl;
done = _findfirst(tempdir, &fdata); //开始查找文件
if(done!=-1) //是否查找成功
{
int ret = 0;
while(ret!=-1) //定义一个循环
{
if(fdata.attrib != _A_SUBDIR) //判断文件属性
{
//cout << fdata.name << endl;
if(strcmp(fdata.name, "...")!=0 &&
strcmp(fdata.name, "..") != 0 &&
strcmp(fdata.name, ".") != 0) //过滤
{
char dir[MAXLEN] = {0}; //定义字符数组
strcat(dir, pchData); //连接字符串
strcat(dir, "\");
strcat(dir, fdata.name);
cout << dir << endl; //输出查找到的文件名
FILECOUNT++; //累加文件个数
}
}
ret = _findnext(done, &fdata); //查找下一个文件
if(fdata.attrib == _A_SUBDIR && ret != -1) //判断文件属性,如果是目录,则递归调用
{
if(strcmp(fdata.name, "...") != 0 &&
strcmp(fdata.name, "..") != 0 &&
strcmp(fdata.name, ".") != 0) //过滤
{
char pdir[MAXLEN] = {0}; //定义字符数组
strcat(pdir, pchData); //连接字符串
strcat(pdir, "\");
strcat(pdir, fdata.name);
cout << pdir << endl; //输出要递归调用的目录名
ListDir(pdir); //递归调用
}
}
}
}
}
int main(int argc, char* argv[]) //主函数
{
while(true) //设计一个循环
{
FILECOUNT = 0;
char szFileDir[128] = {0}; //定义一个字符数组,存储目录
cin >> szFileDir; //让用户输入要查找的目录名
if(strcmp(szFileDir, "e") == 0) //退出系统
{
break;
//exit(0);
}
ListDir(szFileDir); //调用ListDir函数遍历目录
cout << "共计" << FILECOUNT << "个文件" << endl; //统计文件数量
}
return 0;
}
.html
本文发布于:2024-01-30 14:25:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659595820644.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |