VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 202|回复: 1

VC驿站《C/C++ Windows 程序设计》

[复制链接]
88_avatar_middle
最佳答案
0 
在线会员 发表于 2020-10-11 00:07:55 | 显示全部楼层 |阅读模式
这个递归是否在这有错误
void EnumFiles_3(LPCTSTR lpszParentPath, LPCTSTR lpFileType)
{
        if (!lpszParentPath || _tcslen(lpszParentPath) <= 0 || !lpFileType || _tcslen(lpFileType) <= 0) return;

        TCHAR szFilePath[MAX_PATH] = { 0 };
        _stprintf(szFilePath, _T("%s%s"), lpszParentPath, lpFileType);

        fstream fs;
        fs.open("./file.txt");
        if (!fs) return;

        WIN32_FIND_DATA stFindFileData = { 0 };
        HANDLE hFind = FindFirstFile(szFilePath, &stFindFileData);
        if (hFind != INVALID_HANDLE_VALUE)
        {
                BOOL bFind = FALSE;
                do
                {
                        bFind = FindNextFile(hFind, &stFindFileData);
                        if (!bFind) break;

                        string strInfo;
                        if (stFindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                        {
                                if (_tcscmp(stFindFileData.cFileName, _T(".")) == 0 || _tcscmp(stFindFileData.cFileName, _T("..")) == 0) continue;
                                strInfo += "Folder Name:\t";
                                strInfo += unicode2gbk(stFindFileData.cFileName);
                                strInfo += "\t------";

                                if (stFindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) strInfo += "r";
                                if (stFindFileData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) strInfo += "s";
                                if (stFindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) strInfo += "h";
                                strInfo += "\n";

                                TCHAR szPath[MAX_PATH] = {0};
                                _stprintf(szPath, _T("%s%s"), szPath, stFindFileData.cFileName);
                                EnumFiles_3(szPath, lpFileType);
                        }
                        else
                        {
                                strInfo += "File Name:\t";
                                strInfo += unicode2gbk(stFindFileData.cFileName);
                                strInfo += "\t------";

                                if (stFindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) strInfo += "r";
                                if (stFindFileData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) strInfo += "s";
                                if (stFindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) strInfo += "h";
                                strInfo += "\n";
                        }

                        if (strInfo.size() > 0) fs << strInfo.c_str();

                } while (bFind);
        }

        fs.close();
        FindClose(hFind);
}

就是在 _stprintf(szPath, _T("%s%s"), szPath, stFindFileData.cFileName);
觉得条件是_stprintf(szPath, _T("%s%s"), lpszParentPath, stFindFileData.cFileName);




上一篇:《C/C++ Windows 程序设计》
下一篇:Winsock 编程
84_avatar_middle
最佳答案
3 
在线会员 发表于 2020-10-13 10:25:45 | 显示全部楼层
你的觉得 应该对的
TCHAR szPath[MAX_PATH] = {0};
_stprintf(szPath, _T("%s%s"), szPath, stFindFileData.cFileName);

看看这里就不对, 这里的szPath刚刚声明的
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-26 08:50

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表