还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

VC/Linux C++ 递归访问目录下所有文件

来源:清泛原创     2016-06-07 10:50:44    人气:     我有话说( 0 人参与)

VC函数,部分代码如下:find(char * lpPath){ char szFind[MAX_PATH]; WIN32_FIND_DATA FindFileData; strcpy(sz...

VC函数,部分代码如下:
find(char * lpPath)
{
    char szFind[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);
                find(szFile);
            }
        }
        else
        {
            cout << FindFileData.cFileName;
        }
        if(!FindNextFile(hFind,&FindFileData))    break;
    }
    FindClose(hFind);
}

Linux C++实例如下:
#include <dirent.h>
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
void GetFileInDir(string dirName)
{
    DIR* Dir = NULL;
    struct dirent* file = NULL;
    if (dirName[dirName.size()-1] != '/')
    {
        dirName += "/";
    }
    if ((Dir = opendir(dirName.c_str())) == NULL)
    {
        cerr << "Can't open Directory" << endl;
        exit(1);
    }
    while (file = readdir(Dir))
    {
        //if the file is a normal file
        if (file->d_type == DT_REG)
        {
            cout << dirName + file->d_name << endl;
        }
        //if the file is a directory
        else if (file->d_type == DT_DIR && strcmp(file->d_name, ".") != 0 && strcmp(file->d_name, "..") != 0)
        {
            GetFileInDir(dirName + file->d_name);
        }
    }
}
int main(int argc, char* argv[])
{
    if (argc < 2)
    {
        cerr << "Need Directory" << endl;
        exit(1);
    }
    string dir = argv[1];
    GetFileInDir(dir);
}

C++ VC 递归目录

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: