欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一种跨平台的C++遍历目录的方法

程序员文章站 2022-03-11 18:55:10
参考了网络上各路大神的实现方法。主要使用了io.h库 #include #include #include #include #include #include using namespa ......

参考了网络上各路大神的实现方法。主要使用了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;}