1.网上有些代码有问题,改进如下
#include <stdio.h>
#include<windows.h>
#include<iostream>
#include<string>
using namespace std;
int count = 0;
void find(char * lpPath)
{
char save_path[200];
char szFile[MAX_PATH] = {0};
char szFind[MAX_PATH];
char root[MAX_PATH];
WIN32_FIND_DATA FindFileData;
strcpy(szFind,lpPath);
strcat(szFind,"*.*");
HANDLE hFind=::FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return;
while(TRUE)
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData.cFileName[0]!='.')
{
strcpy(szFile,lpPath);
//strcat(szFile,"//");
strcat(szFile,FindFileData.cFileName);
strcat(szFile,"//");
find(szFile);
}
}
else
{
strcpy(root, lpPath);
strcat(root,FindFileData.cFileName);
cout << root << endl;
}
if(!FindNextFile(hFind,&FindFileData)) break;
}
FindClose(hFind);
}
void main()
{
find("..//2003//");
}原文地址:http://blog.csdn.net/lampqiu/article/details/41245075