文件夹遍历 c++(转载)

#include <io.h>  
#include <iostream>  
#include <string>  
#include <windows.h>  
#include <direct.h>  
  
using namespace std;  
   
string sRoot = "G:";  //根目录  
string sSuffix = "\\DesignModal"; //中间路径  
string sEnd = "\\"; //路径末尾追加的部分  
  
void Move(string sPath);  
  
int main(void)  
{  
    string sPath = sRoot + sSuffix; //sPath="G:\\DesignModal"  
    Move(sPath);  
    system("pasue");  
    return 0;  
}  
  
void Move( string sPath)  
{  
    struct _finddata_t file;  
    memset(&file, 0, sizeof(file));  //初始化结构  
    long hFile;  
    string sPathLast = sPath; //sPathLast="G:\\DesignModal"  
  
    if (_chdir(sPathLast.c_str()) != 0) //_chdir函数设置当前目录   
    {    
        cerr << "当前目录设置失败!" << endl;    
        exit(-1);    
    }   
  
    hFile = _findfirst("*",&file);  //参数1:char *类型,"*"表示通配符,可以查找文件、文件夹  
    if(hFile == -1)   
    {  
        cout << " 遍历失败!" << endl;  
        return ;  
    }  
  
    do  
    {  
        if(file.name[0] == '.')  //过滤本级目录和父目录 此处就是“程序例2”中的病根所在  
            continue;  
        if(file.attrib == _A_SUBDIR) //子文件夹  
        {  
            string sAddPath = sPath;    
            sAddPath += "\\";  
            sAddPath += file.name;  
            cout << "目录:" << sAddPath << endl;  
            Move(sAddPath);  //递归遍历  
        }  
        else  
        {  
            string sAddPath = sPath;   
            sAddPath += "\\";  
            sAddPath += file.name;  
            cout << "文件:" << sAddPath << endl;  
        }  
    }while(_findnext(hFile,&file) == 0); //没有找到文件或文件夹  
    _findclose(hFile);  //一定记得关闭文件句柄  
}  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值