楼主: 银砾石
收起左侧

[原创工具] 火流星(2011-2-15 FS.DLL更新---bug修复)

  [复制链接]
olly
发表于 2009-9-29 14:38:01 | 显示全部楼层

回复 310楼 银砾石 的帖子

debug调试的时候vs2008还是会报告错误~~

另外枚举文件时显示的长文件名丢失(有些缺失一些文件名),短文件名没问题~

Explore.rar

88.37 KB, 下载次数: 18

银砾石
 楼主| 发表于 2009-9-29 15:11:37 | 显示全部楼层
是不是因为没有长文件名?
FAT下不是所有文件都有长文件名的
你用火流星对应看下有没有
olly
发表于 2009-9-29 15:16:36 | 显示全部楼层
额。。。。看了下,有些的确没有,,我是大写的短文件命名的。。。
银砾石
 楼主| 发表于 2009-9-29 15:23:33 | 显示全部楼层
你那两个浏览程序我试了下,好象并没有调用FS.DLL
那你用我的那个测试程序进去看下有没有

关于调试错误,我这边有VC2008的没有FAT分区,待会我换有FAT的调试看看------可能枚举时还有其他问题

[ 本帖最后由 银砾石 于 2009-9-29 15:31 编辑 ]
未命名.PNG
olly
发表于 2009-9-29 15:32:14 | 显示全部楼层

回复 314楼 银砾石 的帖子

你点击右键,使用物理解析试试
还有一个问题,如果文件的路径很长的话,使用长文件名传入解析会发生错误
2009-09-29_153606.jpg

[ 本帖最后由 olly 于 2009-9-29 15:37 编辑 ]
银砾石
 楼主| 发表于 2009-9-29 15:43:38 | 显示全部楼层
另外枚举文件时显示的长文件名丢失(有些缺失一些文件名)

这个是不是图上的空白文件名?


传入长文件名可能是MAX_PATH路径不够的原因
olly
发表于 2009-9-29 18:40:40 | 显示全部楼层

回复 316楼 银砾石 的帖子

恩,是上图的空白文件名,最初我以为是解析长文件名错误。。。
超长长文件名直接调用系统unicode版函数就能枚举。。

评分

参与人数 1人气 +1 收起 理由
银砾石 + 1 感谢支持,欢迎常来: )

查看全部评分

银砾石
 楼主| 发表于 2009-9-29 22:36:33 | 显示全部楼层

回复 317楼 olly 的帖子

空白文件名是长文件名为空----这里的长文件名并不是根据文件名长度来判断的,而是根据目录项的属性来判断----本来就没有,所以显示空的
超长文件名的问题,我把MAX _PATH改成了4096,一般而言够用了。

目前发现有其他问题(内存释放,非法路径等)...

[ 本帖最后由 银砾石 于 2009-9-29 22:41 编辑 ]

FS.rar

42.17 KB, 下载次数: 37

olly
发表于 2009-9-30 00:43:06 | 显示全部楼层

回复 318楼 银砾石 的帖子


空白文件名是长文件名为空----这里的长文件名并不是根据文件名长度来判断的,而是根据目录项的属性来判断----本来就没有,所以显示空的


恩,我原来的盘为了减少目录碎片用了很多8.3短文件名,,但是在测试的时候忘记这个了,抱歉~~~
关于内存泄露,我后台开着Smart Raw没有感觉到,汗~~

刚更新的这个FS.DLL貌似只能枚举第一个目录,是不是函数改动了

[ 本帖最后由 olly 于 2009-9-30 00:45 编辑 ]
银砾石
 楼主| 发表于 2009-9-30 08:27:42 | 显示全部楼层
#define maxsize 4096
sorry,,,fat结构那里定义longname[maxsize]
errorcode 0x01定义为 文件未找到

typedef class  FAT {
public:
WORD ErrerCode; //错误代码 01为未找到
WORD fs; //标识,为FS
BYTE filetype; //文件类型 1为目录,0为文件
CHAR shortname[12]; //短文件名
WCHAR longname[maxsize];//长文件名
LARGE_INTEGER filesize; //文件大小
LARGE_INTEGER base;//文件在目录项的基地址
LARGE_INTEGER r_base; //文件实际地址
DWORD offset; //文件在目录项的偏移
DWORD clust; //文件所在的簇号
FS_TIME ctime; //文件创建时间
FS_TIME mtime; //文件修改时间
FAT * head; //指向头
FAT * next; //指向下一个文件
FAT * pre; //指向上一个文件
}FS_FAT,*pFS_FAT;

[ 本帖最后由 银砾石 于 2009-9-30 08:33 编辑 ]
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-28 03:35 , Processed in 0.110870 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表