遍历文件夹

 void EnumeratePathFolders(LPCTSTR lpPathName)
{
    WIN32_FIND_DATA fd;
    CString s = lpPathName;
    if (s.Right(1).Compare(_T("//")) != 0)
        s = s + _T("//");
    HANDLE hFind = FindFirstFile(s + _T("*.*"), &fd);
    if (INVALID_HANDLE_VALUE == hFind) return;
    BOOL bFind = TRUE;
    while (bFind)
    {
        if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {    // directory
            if ((_tcscmp(fd.cFileName, _T(".")) != 0)  && (_tcscmp(fd.cFileName, _T("..")) != 0 ))
            {
                TRACE(_T("/n文件夹:%s"), s + fd.cFileName);
                EnumeratePathFolders(s + fd.cFileName + _T("//"));
            }
        }
        else
        {    // file
            _tcslwr(fd.cFileName);    // 变成小写格式
            if (_tcsstr(fd.cFileName, _T(".exe")) != NULL)
            {    // 指定的文件
                TRACE(_T("/n文件:%s"), s + fd.cFileName);
            }
        }
        bFind = FindNextFile(hFind, &fd);
    }
    FindClose(hFind);
}

void EnumerateFolders()
{    
    TCHAR szDrivers[255];
    DWORD dwBufferSize = 255;
    DWORD dwRealSize = GetLogicalDriveStrings(dwBufferSize, szDrivers);
    if (0 == dwRealSize) return;    // function fails
    if (dwRealSize > dwBufferSize) return; // buffer is not large enough

    TCHAR szDrv[4];
    UINT uiDrvType;
    // get all drivers
    for (int i = 0; i < dwRealSize; i = i + 4)
    {
        _tcscpy(szDrv, &szDrivers[i]);
        TRACE(_T("/n%s    "), szDrv);

        uiDrvType = GetDriveType(szDrv);
        if ((DRIVE_FIXED == uiDrvType))    // disk
        {
            TRACE(_T("DRIVE_FIXED"));
            //EnumeratePathFolders(szDrv);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值