终于搞定了文件遍历。。。。


本来想应该很简单的,findfirstfile findnextfile ,findclose

可是动手做做还真傻掉了,小错误不断,现在终于搞定了,总结一下

1.语言最好用c,起先用的是delphi,为了显示方便,但却陷入了字符数组转pchar和string的漩涡之中,应该用delphi的findfirst吧,慢点再试下。。c语言就没这个问题了,反正都是char*...

 

2.finddata 的dwFileAttributes,我起先是用finddata.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY来判断,结果基本是false,这里忽略了目录也可以有其他属性,正确做法见源码..

 

 

void searchFile(char * filepath)
{
	WIN32_FIND_DATA finddata;
	HANDLE findHandle;
	char filename[MAX_PATH -1];
	wsprintf(filename,"%s%s",filepath,"//*");
	findHandle = FindFirstFile(filename,&finddata);

	while (FindNextFile(findHandle,&finddata) !=0 )
	{
		if (finddata.cFileName[0] != '.') 
		{
			if ((finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)==  FILE_ATTRIBUTE_DIRECTORY  )
			{
			//	printf("----%s/n",finddata.cFileName );
				char subpath[MAX_PATH-1];
			/*	lstrcpy(subfile,finddata.cFileName);*/
				wsprintf(subpath,"%s%s//",filepath,finddata.cFileName);
			/*	int len = lstrlen(finddata.cFileName);*/
			//	printf("sub file:%s/n" ,subpath );
				searchFile(subpath);

			}
			else
 				printf("%s/n",finddata.cFileName);
		}

// 		
			
	}
	FindClose(findHandle);
}
 
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告