CFileFind finder;
BOOL bWorking = finder.FindFile("*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
cout << (LPCTSTR) finder.GetFileName() << endl;
}这段代码是MSDN里的例子,我把其中的(*.*)换成了("D://*.*")目的是想得到D盘下的所有文件,这个没有考虑D盘下还有其他文件夹的问题,后面有换成了("D://*.jpeg"),是想得到D盘下所有的jpeg格式的文件,我这么理解对吗?、
这段代码编译都过得去,可是执行就会有错误,是怎么回事呢??
错误:Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/nomfc.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
BOOL bWorking = finder.FindFile("*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
cout << (LPCTSTR) finder.GetFileName() << endl;
}这段代码是MSDN里的例子,我把其中的(*.*)换成了("D://*.*")目的是想得到D盘下的所有文件,这个没有考虑D盘下还有其他文件夹的问题,后面有换成了("D://*.jpeg"),是想得到D盘下所有的jpeg格式的文件,我这么理解对吗?、
这段代码编译都过得去,可是执行就会有错误,是怎么回事呢??
错误:Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/nomfc.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
win32 console applocation -》 选择支持MFC的-》在else 部分里加上自己代码(注释里有标明)
就把你粘贴在这里的代码粘贴上去;运行 正确。你这个代码只能显示当前文件夹下的。
要显示下面文件夹的话就要使用递归函数了。你的函数该成find()运行find(D:\\*.*)CFileFind finder;
find(char * str)
{
BOOL bWorking = finder.FindFile(str);
while (bWorking)
{
bWorking = finder.FindNextFile();
cout << (LPCTSTR) finder.GetFileName() << endl;
if(finder.isDirectory())
find(finder.GetFileName()); //递归;
}
return ;
}
代码意思已经达到 细节你自己调试调试吧 加油。帮你UP。。
百度也能搜索到代码。
如果真的是有多线程部分,那么楼上有几位已经说出了工程的设置方法。
void CEditLegalFileDlg::AnalyseDir(char *szDir)
{
char szFind[MAX_PATH];
char szFile[1024];
WIN32_FIND_DATA FindFileData;
strcpy(szFind,szDir);
strcat(szFind,"\\*.*");
HANDLE hFind=FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return; while(TRUE)
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData.cFileName[0]!='.')
{
strcpy(szFile,szDir);
strcat(szFile,"\\");
strcat(szFile,FindFileData.cFileName);
AnalyseDir(szFile);
}
}
else
{
int index=(int)strlen(FindFileData.cFileName)-1;
while(index>0)
{
if(FindFileData.cFileName[index]=='.') //找到第一个点
break;
index--;
}
char *p=&FindFileData.cFileName[index+1];
char fullName[MAX_PATH]; strcpy(fullName,szDir);
strcat(fullName,"\\");
strcat(fullName,FindFileData.cFileName); UpperToLower(p,strlen(p));
if(CheckExtend("exe",p)||CheckExtend("com",p)) //||CheckExtend("sys",p)||CheckExtend("dll",p))
AddToList(fullName); }
if(!FindNextFile(hFind,&FindFileData)) break;
}
FindClose(hFind);
}
----
方法:vc-->project-->setting-->option 在option添加 /MT..