#include<windows.h>
#include<iostream>
#include<cstring>
using namespace std;
static long total = 0;
void ListFile(void)
{
HANDLE hSearch;
WIN32_FIND_DATA data;
hSearch = FindFirstFile("*", &data);
do{
if (strcmp(data.cFileName, ".") && strcmp(data.cFileName, ".."))
{
if (data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
cout<<"目录:"<<data.cFileName<<"/n";
SetCurrentDirectory(data.cFileName);
ListFile();
SetCurrentDirectory("..");
}
else
{
cout<<data.cFileName<<endl;
++total;
}
}
}while(FindNextFile(hSearch,&data));
FindClose(hSearch);
}
int main(int argc,char *argv[])
{
ListFile();
cout<<"总共 "<<total<<" 个文件"<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<cstring>
using namespace std;
static long total = 0;
void ListFile(void)
{
HANDLE hSearch;
WIN32_FIND_DATA data;
hSearch = FindFirstFile("*", &data);
do{
if (strcmp(data.cFileName, ".") && strcmp(data.cFileName, ".."))
{
if (data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
cout<<"目录:"<<data.cFileName<<"/n";
SetCurrentDirectory(data.cFileName);
ListFile();
SetCurrentDirectory("..");
}
else
{
cout<<data.cFileName<<endl;
++total;
}
}
}while(FindNextFile(hSearch,&data));
FindClose(hSearch);
}
int main(int argc,char *argv[])
{
ListFile();
cout<<"总共 "<<total<<" 个文件"<<endl;
system("pause");
return 0;
}
用的是递归的方法,还是比较简单的,改一下代码就可以实现查找指定文件。
本文分享了一个使用C++在Windows环境下实现的文件系统遍历程序。该程序采用递归方式,可以列出指定目录下的所有文件及子目录,并统计文件总数。通过修改代码,还能轻松扩展为查找特定文件的功能。
1185

被折叠的 条评论
为什么被折叠?



