当前位置:首页 » 知网查重 » mfc目录遍历

mfc目录遍历

发布时间: 2021-03-06 09:03:45

1. MFC 中文件夹的遍历

一个类搞定 CFileFind
搜索这个名字就可以得到大量的源码了。

2. mfc中怎么遍历指定目录下的文件名字

static void TraverseDir(const string& dir, std::vector<string>& vec)
{
ff;
string temp_dir = dir+ "*.bin";
BOOL ret = ff.FindFile(temp_dir.c_str());
while (ret)
{
ret = ff.FindNextFile();
if (ret != 0)
{
if (ff.IsDirectory() && !ff.IsDots())
{
CString path = ff.GetFilePath();
//TraverseDir(path.GetBuffer(0), vec);
}
else if (!ff.IsDirectory() && !ff.IsDots())
{
//CString name = ff.GetFileName();
CString path = ff.GetFilePath();
vec.push_back(path.GetBuffer(0));
}
else
{
CString path = ff.GetFilePath();
int j = 0 ;
}
}
else
{
CString path = ff.GetFilePath();
if (path.Find(".bin")>0)
{
vec.push_back(path.GetBuffer(0));
}
}

}
ff.Close();
}

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

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

voidDelFiles(CString&strDirPath,CStringstrFileName,BOOLbDelAll)
{
CFileFindFileFinder;
strDirPath=strDirPath+_T("\");
CStringstrFilePath=strDirPath+strFileName;

while(TRUE)
{
if(FileFinder.FindFile(strFilePath))
{
FileFinder.FindNextFile();
CStringstrDelFilePath=FileFinder.GetFileName();
strDelFilePath=strDirPath+strDelFilePath;
DelDirectory(strDelFilePath);

if(!bDelAll)
{
break;
}
}
else
{
break;
}
}
FileFinder.Close();
}

4. MFC,遍历文件夹。文件夹下有多个子文件夹,子文件夹中又有多个子文件。

网上这种文章和例子太多了,不复制了,自己版搜“cfilefind 递归 子目权录”
http://wenku..com/view/282ecb1bff00bed5b9f31df3.html

5. MFC中遍历当前目录下的文件和文件夹,然后将所有找到的文件夹的名字提取出来

把以下代码放到Win32控制台运行,亲测可用:

#include <windows.h>
#define FILEILTER "*.*" //查找条件,例如查找.exe格式的那么就用*.exe,当然也可以直接用setup.exe
#include "iostream.h"
#include "stdio.h"

BOOL IsRoot(LPCTSTR lpszPath)
{
TCHAR szRoot[4];
wsprintf(szRoot, "%c:\\", lpszPath[0]);
return (lstrcmp(szRoot, lpszPath) == 0);
}

void FindInAll(LPCTSTR lpszPath)
{
TCHAR szFind[MAX_PATH];
lstrcpy(szFind, lpszPath);
if (!IsRoot(szFind))
lstrcat(szFind, "\\");
lstrcat(szFind, FILEILTER); // 找所有文件
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(szFind, &wfd);
if (hFind == INVALID_HANDLE_VALUE) // 如果没有找到或查找失败
return;

do
{
if (wfd.cFileName[0] == '.')
continue; // 过滤这两个目录
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
FindInAll(szFile); // 如果找到的是目录,则进入此目录进行递归
}
}
else
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
{
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
}
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
printf("%s\n",szFile);
}
// 对文件进行操作
}
} while (FindNextFile(hFind, &wfd));
FindClose(hFind); // 关闭查找句柄

}
int main(int argc, char* argv[])
{
FindInAll("E:"); //这里设置目录为E:,请根据需要更改
return 0;
}

6. MFC 如何遍历当前文件夹下的文件夹

参考 vc范例开发大全 陈建国 实例207

7. 怎么用MFC的类实现遍历某个指定目录下的所有目录,包括他子目录的子目录

使用CFileFind递归遍历,这是我写的一个搜索文件的内例子。容
http://blog.csdn.net/charlessimonyi/article/details/8648837

8. MFC我想遍历某个文件夹的所有文件并获取文件大小,再把它们加起来

RefreshDataTemp(strPath);} //递归调用

这里你也写了,是递归调用,那么也就是子目录的统计,是在另版一个(同名)函数调权用中完成的,而size和Size都是局部变量,不会传递到上一层函数调用。
解决方法:Size 作为返值或全局变量,tr的三行语句放在这个函数之外,不参与递归。

9. MFC如何遍历一个文件夹下的所有文件夹(不是文件,是文件夹)

用下复面的程序段可以实现制你要求的功能

CFileFind ff;
CString strDir= "d:\\Program Files\\*.*";
BOOL res = ff.FindFile(strDir);
while(res)
{
res = ff.FindNextFile
if(ff.IsDirectory() && (!ff.IsDots()))();//遍历子目录,剔除".0”和".."两个
{
CString strFile = ff.GetFileName();

// 在这里写需要的代码
}
}
ff.Close(); // 不要忘记关闭

若满意请及时采纳,谢谢

10. MFC 用树控件实现磁盘目录遍历

热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731