我做了一个打开文件夹的对话框,可以返回文件夹的路径,现在我想做一个函数,打开该文件夹中的一个文件,然后做一个循环,每次调用这个函数打开一个文件,还要保证每次循环打开的文件跟上次打开的文件不是同一个,是跟上一个文件挨着的文件。怎么处理,求指导MFC打开文件
解决方案 »
- 注册表中,表示系统是32bit或是64bit的注册表在哪里?
- CListCtrl一行中的一列元素在双击之后变成一个编辑框,这个功能如何实现?
- 编写windows程序牢牢要记住的结构体
- 关于 tools->opion->directories
- OCX控键调用DLL,DLL发送消息给OCX,OCX如何调用?
- 高分求局域网 VC++ sample!!!!
- PB 调用 VC DLL 中的 CSocket::Create,第二次时报错退出
- 下面的函数如何使用?
- 请教谁知道哪能找到各种光盘格式的详细描述资料?
- 用哪个函数可以获得已经存在的进程的句柄??
- FindResourceEx函数问题
- 请教下怎么获取页游上的人物角色的数据信息
CFileFind
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE; CString strFolderTmp = FolderPath + _T("\\*"); hFind = FindFirstFile(strFolderTmp, &FindFileData); if (hFind == INVALID_HANDLE_VALUE)
{
return FALSE;
}
else
{
while (FindNextFile(hFind, &FindFileData) != 0)
{
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if ( (_tcscmp(FindFileData.cFileName, _T(".")) == 0)
||(_tcscmp(FindFileData.cFileName, _T("..")) == 0) )
{
continue;
}
CString strtem(FindFileData.cFileName);
CString strNextDirectry = FolderPath + _T("\\") + strtem;
(void)LookUpFile(strNextDirectry, vecOrderContent, strFlag);
}
else
{
CString strTem(FindFileData.cFileName);
strTem.MakeLower();
if ((strTem.Find(strFlag) != -1))
{
vecOrderContent.push_back(FolderPath + _T("\\") + FindFileData.cFileName);
continue;
}
}
} DWORD dwError = GetLastError();
FindClose(hFind);
}
return TRUE;
}
2.使用CFileFind递归(如果有子文件夹)遍历该目录下面的文件.
3.遍历的同时在,使用fopen打开文件就OK了!