往磁盘写文件,如何保证文件在物理磁盘上连续 就是没有磁盘碎片

lanmu01 2011-12-15 04:41:23
现在的需求是,做一个安装包,在安装的时候,希望安装的文件在磁盘上物理是连续的(不仅单个文件没有碎片,而且多个文件之间也尽量连续),求思路,以前很少接触这类问题。
看到这个http://topic.csdn.net/u/20080913/08/1b1deff3-3107-4899-8793-7e23727bfd36.html
貌似要用到DeviceIoControl,不过以前都没用到过。
...全文
537 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gameslq 2011-12-21
  • 打赏
  • 举报
回复
用普通的办法基本不可能,建立文件写文件都要经过操作系统
除非自己写磁盘驱动程序,然后接管系统磁盘驱动,
现在磁盘空间这么大没必要非的创建连续的文件吧?
sophyyoung 2011-12-21
  • 打赏
  • 举报
回复
我只知道 fat 的文件系统是不能保证的,保证啊~
ntfs 的不知道。
stecdeng 2011-12-21
  • 打赏
  • 举报
回复
创建大文件
把自己要写入的数据写入到这个大文件中
大文件的要求保证硬盘连续
可以实现扫描硬盘找到足够的空间指定写入的扇区和长度
有FILEDISK那种意思

lanmu01 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 y_l_stone 的回复:]

硬盘格式化成iso9660的格式,那个是连续的

ntfs的话,自己写磁盘吧。

也可以考虑先申请一个比较大的文件,再在文件里写,不过这样不能保证多文件连续了。
[/Quote]

这样可以保证单个文件连续么?
lanmu01 2011-12-19
  • 打赏
  • 举报
回复
多谢各位的回复,那请问如果创建单个文件的话,怎样保证碎片经量少?
havedown 2011-12-17
  • 打赏
  • 举报
回复
如果磁盘上没有连续的空间(但总空间够)供你安装,估计你还得先写个程序整理碎片。

y_l_stone 2011-12-17
  • 打赏
  • 举报
回复
硬盘格式化成iso9660的格式,那个是连续的

ntfs的话,自己写磁盘吧。

也可以考虑先申请一个比较大的文件,再在文件里写,不过这样不能保证多文件连续了。
辰岡墨竹 2011-12-17
  • 打赏
  • 举报
回复
这种事情根本没法保证。因为一旦磁盘可用空间少于20%,即使NTFS或ext3都会产生碎片的。
除非你能保证这是一个新格式化的分区什么的。
wmjhl 2011-12-17
  • 打赏
  • 举报
回复
如果你能保证整个程序只有一个文件,就可以做到,不然就别幻想了.因为硬盘的最小分配模块是簇,不可能你每个文件刚好是个整数簇,所以不可能
Gloveing 2011-12-16
  • 打赏
  • 举报
回复
没法保证吧?
「已注销」 2011-12-16
  • 打赏
  • 举报
回复
文件小于512字节,就可以保证。

2,641

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧