C++(MFC)得到文件夹路径,之后怎么遍历文件夹里面的文件(char*)保存

如题,主要是想遍历给出文件夹下的文件并得到每个文件的完整路径,求解... 如题,主要是想遍历给出文件夹下的文件并得到每个文件的完整路径,求解 展开
 我来答
任明星Ming
2014-05-15 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1151万
展开全部

这个是删除文件的用法,找到文件和删除文件都差不多。用CFileFinder可以遍历。

void DelFiles(CString& strDirPath, CString strFileName, BOOL bDelAll)  
{  
    CFileFind FileFinder;  
    strDirPath  = strDirPath + _T("\\");  
    CString strFilePath = strDirPath + strFileName;  
  
    while (TRUE)  
    {  
        if (FileFinder.FindFile(strFilePath))  
        {  
            FileFinder.FindNextFile();  
            CString strDelFilePath  = FileFinder.GetFileName();  
            strDelFilePath = strDirPath + strDelFilePath;  
            DelDirectory(strDelFilePath);  
  
            if (!bDelAll)  
            {  
                break;  
            }  
        }  
        else  
        {  
            break;  
        }  
    }  
    FileFinder.Close();  
}
gis19831203
2014-05-15 · TA获得超过690个赞
知道小有建树答主
回答量:914
采纳率:0%
帮助的人:838万
展开全部
//前面的#include等语句省略。
//成功返回TRUE,失败返回FALSE。
//只是在有文件的地方注释了,存储或显示方面可以自己做。
BOOL GetAllFile(LPCTSTR dirpath)
{
HANDLE h;
WIN32_FIND_DATA wfd;
TCHAR path[MAX_PATH];
BOOL more_files = TRUE;

_stprintf(path, _T("%s\\*.*"), dirpath);
h = FindFirstFile(dirpath, &wfd);
if(h == INVALID_HANDLE_VALUE)
return FALSE;

while(more_files)
{
if(_tcscmp(wfd.cFileName, _T(".")) == 0 || _tcscmp(wfd.cFileName, _T("..")) == 0)
{
//忽略 . 和 ..
}
else if((wfd.dwFileAttributes | FILE_ATTRIBUTE_DIRECTORY) != 0)
{
//处理子目录
TCHAR temp[MAX_PATH];
_stprintf(temp, _T("%s\\%s"), dirpath, wfd.cFileName);
if(!GetAllFile(temp))
{
FindClose(h);
return FALSE;
}
}
else
{
//这里就是文件,temp存放的就是全路径
TCHAR temp[MAX_PATH];
_stprintf(temp, _T("%s\\%s"), dirpath, wfd.cFileName);
}

more_files = FindNextFile(h, &wfd);
if(!more_files && GetLastError() != ERROR_NO_MORE_FILES)
{
FindClose(h);
return FALSE;
}
}

FindClose(h);
return TRUE;
}

这样调用
GetAllFile("C:\\temp");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-05-15
展开全部
保存 在 想要的位置就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式