如何判断文件夹是否为空?

如何判断文件夹是否为空?,第1张

判断是否为空,可以遍历该文件夹,是不是有文件.

m_FilePath是文件夹路径:

CString str = m_FilePath + "\\*.*"

CFileFind finder

BOOL bWorking = finder.FindFile(str)

CString strFind

int nStart = 0

while (bWorking)

{

bWorking = finder.FindNextFile()

if(nStart >2)

{

AfxMessageBox("文件夹不空")

}

}

这无法确认,除非用户自己规定了记号,当数组里有规定的记号时就认为空了,比如空字符串就是字符数组的第一个元素为'\0'的字符串。一般情况下是这样处理的:当数组里的数据已经失去存在的意义时,就认为它空了,可以用新的数据来覆盖了——根本没有“清空”的必要,也不可能真正清空,任何符号在数组里其实都是“数据”。所以数据只有有效与无效之别,没有有数与无数之分。有时候,希望数组里一开始或在运行中的某个时刻成为全0或其他符号,那实际上就是后续代码需要的数据,并不是“清空”的意思。对于静态声明的数组,可以这么做:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

int main(void){

int a[10]={1,2,3,4,5,6,7,8,9,10},i,f=1<<sizeof(int)*8-1//用最小的int数做空标记

for(i=0i<10printf("%3d",a[i++]))//数组a中的数据使用完毕

printf("\n")

a[0]=f//认为a数组空了

if(a[0]==f)//检测到a中数组无效了,就可重新输入数据

for(i=0i<10scanf("%d",a+i++))

printf("\n")

return 0

}

果是动态申请的数组,那就更好办了,数组的数据失效后,用free释放空间并使指针为NULL即可,需要时重新动态申请。如:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

int main(void){

int *p,i

p=(int *)malloc(sizeof(int)*10)//动态申请数组空间

for(i=0i<10scanf("%d",p+i++))//输入数据

for(i=0i<10printf("%d ",p[i++]))//数据使用完毕

free(p)//释放空间

p=NULL//使指针无效

printf("\n")

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8048028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存