遍历指定文件夹下的所有文件(包括子文件夹下)
2009-01-06 11:17
603 查看
int FindFileInDir(char* rootDir, char* strRet)
{
char fname[512];
ZeroMemory(fname,512);
WIN32_FIND_DATA fd;
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
char filePathName[256];
char tmpPath[256];
ZeroMemory(filePathName, 256);
ZeroMemory(tmpPath, 256);
strcpy(filePathName, rootDir);
if( filePathName[strlen(filePathName) -1] != '\\')
{
strcat(filePathName, "\\");
}
strcat(filePathName, "*");
HANDLE hSearch;
hSearch = FindFirstFile(filePathName, &fd);
//Is directory
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
BOOL bSearchFinished = FALSE;
while( !bSearchFinished )
{
if( FindNextFile(hSearch, &fd))
{
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
}
else
{
if( GetLastError() == ERROR_NO_MORE_FILES ) //Normal Finished
{
bSearchFinished = TRUE;
}
else
bSearchFinished = FALSE; //Terminate Search
}
}
FindClose(hSearch);
return 0;
}
{
char fname[512];
ZeroMemory(fname,512);
WIN32_FIND_DATA fd;
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
char filePathName[256];
char tmpPath[256];
ZeroMemory(filePathName, 256);
ZeroMemory(tmpPath, 256);
strcpy(filePathName, rootDir);
if( filePathName[strlen(filePathName) -1] != '\\')
{
strcat(filePathName, "\\");
}
strcat(filePathName, "*");
HANDLE hSearch;
hSearch = FindFirstFile(filePathName, &fd);
//Is directory
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
BOOL bSearchFinished = FALSE;
while( !bSearchFinished )
{
if( FindNextFile(hSearch, &fd))
{
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
}
else
{
if( GetLastError() == ERROR_NO_MORE_FILES ) //Normal Finished
{
bSearchFinished = TRUE;
}
else
bSearchFinished = FALSE; //Terminate Search
}
}
FindClose(hSearch);
return 0;
}
相关文章推荐
- c#遍历一个文件夹下的所有文件包括子文件夹
- C#如何遍历一个文件夹下面所有的文件、包括子文件夹里面的文件?
- 非递归遍历指定文件夹下的所有文件及其子文件夹
- C#遍历一个文件夹下的所有文件包括子文件夹
- c#遍历一个文件夹下的所有文件包括子文件夹
- 获取某某文件夹(包括子文件夹)下所有指定类型的文件
- c#遍历一个文件夹下的所有文件包括子文件夹
- 非递归遍历指定文件夹下的所有文件及其子文件夹 [11/29/2010 更新]
- 获取某某文件夹(包括子文件夹)下所有指定类型的文件
- python 查找文件夹下的指定部分路径下的所有文件内匹配的字符 包括子文件夹下的文件
- c语言遍历某文件夹下的所有文件 包括子文件夹
- 删除指定文件夹下所有文件(包括子文件夹及子文件夹下的所有文件)
- 遍历文件夹 下的所有文件 ,包括子文件夹
- MFC递归扫描指定文件夹下的所有文件包括子文件夹下的文件。
- c#遍历一个文件夹下的所有文件包括子文件夹
- iOS小技巧 - 获取指定文件夹下的所有相对路径(包括子文件夹路径),并实现指定文件夹下的所有文件的全部移动
- c#遍历一个文件夹下的所有文件包括子文件夹【原】
- c#遍历一个文件夹下的所有文件包括子文件夹(转载)
- c#遍历一个文件夹下的所有文件包括子文件夹
- c#遍历一个文件夹下的所有文件包括子文件夹