c语言输出文件夹包含的文件,C语言遍历文件,如何子文件夹也被打印出来了

C语言遍历文件,怎么子文件夹也被打印出来了?

#include 

#include 

#include 

#include 

#include 

#include 

#include 

using namespace std;

void string_replace(string & strBig, const string & strsrc, const string &strdst)

{

string::size_type pos=0;

string::size_type srclen=strsrc.size();

string::size_type dstlen=strdst.size();

while( (pos=strBig.find(strsrc, pos)) != string::npos)

{

strBig.replace(pos, srclen, strdst);

pos += dstlen;

}

}

void filesearch(string path)

{

string s;

///

struct _finddata_t filefind;

string curr=path+"\\*.*";

int done =0,handle;

if(!(handle=_findfirst(curr.c_str(),&filefind)))

{

return ;

}

while(!(done=_findnext(handle,&filefind)))

{

if(strcmp(filefind.name,"..")==0)

{

continue;

}

if(_A_SUBDIR==filefind.attrib)

{

curr=path+"\\"+filefind.name;

filesearch(curr);

continue;

}

s=curr;

string_replace(s,"*.*",filefind.name);

FILE *fp;

fp=fopen("1.txt","a+");

fprintf(fp,"%s\n",s.c_str());

fclose(fp);

}

_findclose(handle);

}

int main()

{

FILE *f;

f=fopen("1.txt","w");

fclose(f);

filesearch("f:");

system("start 1.txt");

return 0;

}

我想把指定文件夹下的所有文件找出来,但是打印的时候怎么有的子文件夹也被打印出来了?

------解决方案--------------------

可以是你判断文件夹的访问有问题

在 if(_A_SUBDIR==filefind.attrib) 这里下断点, 看是目录是这个条件是否进入就知道了

------解决方案--------------------

_A_SUBDIR==filefind.attrib

wrong!

_A_SUBDIR==(filefind.attrib & _A_SUBDIR)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值