首页
社区
课程
招聘
[求助]NTFS中的文件名比较
发表于: 2010-7-10 07:57 5254

[求助]NTFS中的文件名比较

2010-7-10 07:57
5254
最近研究了下NTFS文件系统结构,有个问题很困惑,希望前辈们指点迷津!

在目录索引中记录的INDEX ENTRY结构中有关于每个文件的名称,但是我发现它的存储格式不固定,一般都是长文件名存储,但有时就会存一个短的文件名。

文件名以什么格式存储我并不关心,我最关心的是它们在目录索引中的比较,因为它关心到B-树的深度搜索。那么我的问题就此产生了。

如果我要找的一个文件A是以长文件名存储的。而目录索引中有一个文件B(以短文件名记录)被遍历到的长文件名。
我将文件名用下列方式书写,
A(长):要找的文件A的长文件名
A(短):将A(长)转换为短文件名格式(转换过程不太清楚)。
B(短):目录索引中存放在INDEX ENTRY中的短文件名。
B(长):通过INDEX ENTRY找到文件记录,再获取到B的文件名。

下面是我想到的不同比较情形:
1、比较A(短)和B(短),结果作为索引下一步(向后还是向下)的根据。
2、比较B(长)和A(长),结果作为索引下一步的根据。
3、先比较B(长)和A(长)作为匹配根据,然后比较A(长)和B(短)结果作为索引下一步的根据。
4、先比较B(长)和A(长)作为匹配根据,然后比较A(短)和B(短)结果作为索引下一步的根据。

请问谁知道是哪一种?或者不是我想的这几种的也可说一下。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有点乱,没仔细看,之前我研究过,我一直没看清楚NTFS里面怎么利用了B+TREE,我看了下里面根本都没办法利用
例如有很多文件的时候,(很多时候)根本就不能先在90属性中找到大范围再进去A0的run,只能暴力搜索,也许我没看出来
2010-7-10 14:22
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我已经找到答案了,NTFS中的B+树不是很规范,但是是可以深度搜索的,每个索引表(包括根)都存在一个虚的结点,这个结点是通向最后一个分支的,如果存在的话。
2010-7-10 18:10
0
游客
登录 | 注册 方可回帖
返回