C++计算某目录下的文件数

CSDN相关解释:

int count;

int CGetFileCountDlg::GetFileCount(CString szPath)
{
count = 0;
Recurse(szPath);
return count;
}
void CGetFileCountDlg::Recurse(LPCTSTR pstr)
{
CFileFind finder;

// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("//*.*");

// start working for files
BOOL bWorking = finder.FindFile(strWildcard);

while (bWorking)
{
bWorking = finder.FindNextFile();

if (finder.IsDots()) //判断是否是文件
continue;
if(!finder.IsDirectory())
{
count ++;
}
// if it's a directory, recursively search it
if (finder.IsDirectory()) //判断是否是文件夹 //路径
{
CString str = finder.GetFilePath();
Recurse(str);
}

}

finder.Close();
}

count 就是目录下文件的个数

----------------------------------------------------------------------------

SDK的

HANDLE hFind;
WIN32_FIND_DATA dataFind;
BOOL bMoreFiles=TRUE;
int iCount=0;//统计文件数的变量

//m_strDir就是你要指定的路径
hFind=FindFirstFile(m_strDir+"/*.*",&dataFind);//找到路径中所有文件

//遍历路径中所有文件
while(hFind!=INVALID_HANDLE_VALUE&&bMoreFiles==TRUE)
{
if(dataFind.dwFileAttributes!=FILE_ATTRIBUTE_DIRECTORY)//判断是否是文件
{
iCount++;
}
bMoreFiles=FindNextFile(hFind,&dataFind);
}
FindClose(hFind);

其实上的代码可以在MSDN或者SDK中找到,这里解释一下了。

 

 


//计算某一目录下某一种后缀名的文件数量
//dirName是目录,filter为通配符
int FileCount(const CString &dirName,const CString &filter)
{
 int fileCount = 0;
 WIN32_FIND_DATA FindFileData;
 HANDLE hFind;
 DWORD dwError;
 CString wildcardPath = dirName + _T("//")+filter;
 BOOL bMoreFiles=TRUE;
 hFind = FindFirstFile(wildcardPath,&FindFileData);

 while (hFind != INVALID_HANDLE_VALUE && bMoreFiles)
 {
  fileCount++;
  bMoreFiles = FindNextFile(hFind,&FindFileData);
 }

 dwError = GetLastError();
 FindClose(hFind);
 return fileCount;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值