您的位置:首页 > 编程语言 > C语言/C++

Windows平台 C++遍历文件夹

2016-04-14 17:42 405 查看
#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\\" );
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++