码迷,mamicode.com
首页 > 其他好文 > 详细

vs中实现遍历目录

时间:2015-06-17 21:17:32      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

这两天实现了在vs下遍历指定目录的所有文件,求出对应的hash码,最后封装成动态库。

    首先总结一下思想和用到的主要函数:

1.用FindFirstFile函数可以开始寻找第一得到的文件,并返回一个句柄用来做FindNextFile输入,将文件信息存入fileinfo结构中;

2.利用fileinfo中dwFileAttributes的值判断得到的文件是文件还是目录,如果是目录则进入子目录遍历;如果是文件则调用基于名字的hash计算函数,得到对应的hash码,调用CreateFile得到文件的句柄用来调用基于句柄(handle)的hash计算函数;

3.循环调用FindNextFile,寻找下一个文件;

4.将工程调试完毕,建立dll,当调用这个dll时,也需要将它调用的hash-dll同时复制到exe的运行目录中(一般在debug目录)。

    其中要注意的几个点:

1.windows下面每一个文件夹中默认有.文件和..文件夹,处理时要把它过滤,否则会产生对应的hash失败;

2.在实现循环时要注意在恢复默认的路径,比如遍历“d:/outlook/log",开始继续下一步循环时要先还原成“d:/outlook/”再加下一个文件名;

3.FindNextFile产生的句柄与CreateFile产生的代表文件的句柄不同,只能用于FindNextFile做输入,最后要用findclose(handle)结束,而不是close(handle);

4.在引用目录时最后用“/"儿不是“\\”,比较通用;

5.在vs中很多unicode类型数据,需要与ASCII相互转换。 

vs中实现遍历目录

标签:

原文地址:http://www.cnblogs.com/singlebutterfly/p/4584295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!