Windows平台 C++遍历文件夹

#include"stdafx.h"
#include <stdio.h>  
#include<windows.h>  
#include<iostream>  
#include<string>  
#include<tchar.h>
using namespace std;  
int count = 0;  

// 注意,lpPath最后带一个反斜杠\
// 例如:"C:\\Users\\kitty\\"
void find(char * lpPath)  
{  
    int const MAX_PATH = 200;
    char save_path[MAX_PATH];  
    char szFile[MAX_PATH] = {0};  
    char szFind[MAX_PATH] = {0};
    char root[MAX_PATH]   = {0};

    WIN32_FIND_DATA FindFileData;  
    // 拷贝待搜索的路径名称
    strcpy(szFind,lpPath);  

    // 生成:C:\Users\kitty\*.*
    strcat(szFind,"*.*");  
    // 找到符合条件的第一个文件,并将句柄赋值给 hFind 
    HANDLE hFind=::FindFirstFile( (szFind),&FindFileData);  

    // 第一个文件的句柄为无效句柄,说明搜索失败!
    if(INVALID_HANDLE_VALUE == hFind) 
    {
        cout<<"搜索失败!"<<endl;
        return;  
    }
    while(TRUE)  
    {  
        // 判断当前搜索的文件是否是一个目录
        if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  
        {  
            if(FindFileData.cFileName[0]!='.')  // we find folders now , just ignore!
            {  
                //strcpy(szFile,lpPath);  
                //strcat(szFile,"//");  
                //strcat(szFile,FindFileData.cFileName);  
                //strcat(szFile,"//");  
                //find(szFile);  
            }  
        }  
        else    // 当前搜索文件是一个文件.
        {           
            // we get the filename
            cout<<"Filename:"<<FindFileData.cFileName;
            strcpy(root, lpPath);  
            strcat(root,FindFileData.cFileName);  
            // we get the full name
            cout << "Fullname:" << root << endl;
        }  

        if(!FindNextFile(hFind,&FindFileData)) break;  
    }  
    FindClose(hFind);  
}  
void main()  
{  
    find("C:\\Users\\kitty\\" );   
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值