请问如何打开一个文件夹,并且求出里面的文件个数呀(万分着急,在线等待!!) 用VC打开一个文件夹,并且求出里面的文件个数。请教各位大哥,如何做呢??最好给出源程序代码,非常感谢!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL bContinue; int nCount=0; bContinue=finder.FindFile("D:\\data\\sample\\ge\\*.dat"); bContinue=finder.FindNextFile(); while(bContinue) { nCount++; bContinue=finder.FindNextFile(); } //可能有問題.你自己調試.這是一個.應該有更好的方式.SHFolder**來者.或者其他.int ****::GetFileNumbers(CString csSourceFolder) //GetFileNumbers("c:\\windows");{ int nNums=0; CFileFind f; BOOL bFind=f.FindFile(csSourceFolder+"\\*.*"); while(bFind){ bFind = f.FindNextFile(); if(f.IsDots()) continue; if(f.IsDirectory()) nNums += GetFileNumbers(csSourceFolder+"\\"+f.GetFileName());//下面表示找到一個 while(bFind){ bFind = f.FindNextFile(); if(f.IsDots()) continue; if(f.IsDirectory()) nNums += GetFileNumbers(csSourceFolder+"\\"+f.GetFileName());//下面表示找到一個 nNums++; }} #include <io.h>bool CBrowseDir::BrowseDir(const char *dir,const char *filespec){ _chdir(dir); //首先查找dir中符合要求的文件 long hFile; _finddata_t fileinfo; if ((hFile=_findfirst(filespec,&fileinfo)) != -1) { do { //检查是不是目录 //如果不是,则进行处理 if (!(fileinfo.attrib & _A_SUBDIR)) { char filename[_MAX_PATH]; strcpy(filename,dir); strcat(filename,fileinfo.name); if (!ProcessFile(filename))//文件计数处理 return false; } } while (_findnext(hFile,&fileinfo) == 0); _findclose(hFile); } return true;}e.g. BrowseDir("C:\\Sample","*.x"); foxmail(萧遥)的程序只能找到文件夹下一层的所有文件(注意:还有可能找到的是文件夹),如果还要求出该文件佳下的所有文件(包括子目录下的所有文件) 还需要递归调用. 用CFindFile类,注意如果楼上说的问题,CFindFile类的用法去看msdn 更正:我的程序少找一个因为 bContinue=finder.FindNextFile();当bContinue是false的时候还是找到了一个(最后一个)我刚发现的 VC有消息机制吗? 如何传送文件夹及里面的文件?如果文件夹里面还有子文件夹呢?请高手不吝赐教。不好意思,分少了些,因为没多少分了。 DataGrid控件为什么会出现"多部操作产生错误,请检查每一步的状态值"错误? _variant_t类型的数据怎样进行序列化? 请问有谁知道cue/bin、iso、ccd、bwt、mds、cdi、nrg、pdi 、b5t这些文件的文件格式,分不够可再加! 求助!!请指教 ,,急,急!! 关于回调函数的问题 关于数据库数据合理的转移 如何获取usb接口摄像头采集的图像数据 如何实现让NT自动登陆 做的一个终止暂停进程的程序,共享共享,各位兄弟捧捧场 请问
int nCount=0;
bContinue=finder.FindFile("D:\\data\\sample\\ge\\*.dat");
bContinue=finder.FindNextFile();
while(bContinue)
{
nCount++; bContinue=finder.FindNextFile();
}
int ****::GetFileNumbers(CString csSourceFolder) //GetFileNumbers("c:\\windows");
{ int nNums=0;
CFileFind f;
BOOL bFind=f.FindFile(csSourceFolder+"\\*.*");
while(bFind){
bFind = f.FindNextFile();
if(f.IsDots()) continue;
if(f.IsDirectory()) nNums += GetFileNumbers(csSourceFolder+"\\"+f.GetFileName());//下面表示找到一個
bFind = f.FindNextFile();
if(f.IsDots()) continue;
if(f.IsDirectory()) nNums += GetFileNumbers(csSourceFolder+"\\"+f.GetFileName());//下面表示找到一個
nNums++;
}
}
{
_chdir(dir); //首先查找dir中符合要求的文件
long hFile;
_finddata_t fileinfo;
if ((hFile=_findfirst(filespec,&fileinfo)) != -1)
{
do
{
//检查是不是目录
//如果不是,则进行处理
if (!(fileinfo.attrib & _A_SUBDIR))
{
char filename[_MAX_PATH];
strcpy(filename,dir);
strcat(filename,fileinfo.name);
if (!ProcessFile(filename))//文件计数处理
return false;
}
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
}
return true;
}e.g. BrowseDir("C:\\Sample","*.x");
我的程序少找一个
因为 bContinue=finder.FindNextFile();
当bContinue是false的时候还是找到了一个(最后一个)我刚发现的