首页
社区
课程
招聘
[求助]关于编写一个简单的磁盘整理软件
发表于: 2008-8-1 23:29 4985

[求助]关于编写一个简单的磁盘整理软件

2008-8-1 23:29
4985
小弟最近想研究下磁盘整理

除开算法,觉得有两个基本的功能:
1.查询文件占用的扇区
2.查询某扇区是否被使用

当然最后归结起来就是对文件系统格式的解析

现在Win下主流的文件系统格式有FAT32和NTFS,FAT32貌似公开的资料满多的,考虑从这里入手,希望各位前辈能指点下在哪里有比较全面的资料呢?

此外对于NTFS格式,除开我们自己解析之外,windows是否提供相应的API,可以做这样的查询呢?特别是“查询某扇区是否被使用”,如果没有这样的API,岂不是只有解析完整个分区的才能得知哪些地方是没有被使用中的。

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
自己维护一个表
2008-8-1 23:31
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
自己维护一个表?

也就是需要自己遍历文件系统格式的“头部分"(不知道专业名词叫什么),得到具体的存放数据部分,而且操作系统没有提供这样的API?

如果一个100G的分区,512byte为一扇区,4Kbyte为一簇,

那么我需要提供100*1024*1024/4= 26214400bit=3276800byte=3200Kbyte的空间来放置这个表?!

笨笨的问下,FAT32与NTFS是否都是以“簇"为最小读取单元,但是我看见比如MBR,DBR啊什么的貌似都是以扇区为读取单位,请教下如果我希望获得一个分区所有未使用的空间,是记录扇区好呢?还是记录簇好?
2008-8-2 12:02
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
以簇为磁盘空间分配单位。读取,用户可以按照字节数来读取,操作系统实际上应该是按照页面大小来读取的吧
2008-8-2 13:41
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
页面大小? 怎么获得呢?

我记得读取数据是按照扇区对齐,还是按照簇对齐哦
2008-8-2 13:59
0
雪    币: 264
活跃值: (25)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
ntfs的bitmap会告诉你占用情况,你读磁盘查BITMAP属性就可以了
2008-8-2 17:41
0
游客
登录 | 注册 方可回帖
返回
//