最快速的合并文件的方法???(50分)

  • 主题发起人 主题发起人 darkiss
  • 开始时间 开始时间
D

darkiss

Unregistered / Unconfirmed
GUEST, unregistred user!
目的,合并文件,f1,f2,f3,.....,fn ,首尾相接,也就是说,f1结束后就是f2,以此类推。。。。。<br><br>打开f1,定位到文件结尾,然后打开f2,读f2,写f1,这个方法可行,但是速度慢。<br><br>不知道 copy f1+f2+f3 ff这个命令是怎么实现的,因为一下子就OK了。<br><br>各位能不能给个解释啊?
 
使用流来操作,方便快捷
 
用流 元码 E 我: sim_might@263.net
 
用流是一样的,时间同合并文件的长度有关,而copy命令合并文件是和文件的长度无关的,<br>各位测试一下就知道了。我想知道的是为什么,并且我们在程序里怎样实现类似的功能,<br>不用调用外部的copy命令。
 
猜测COPY命令可能真的只是将文件接起来而已,这样要做的事就只有将第一个文件的末尾连接<br>到第二个的头,将第二的末尾接到第三个的头,依次类推,最后计算一下文件的总长度,修改到文件的<br>头里就可以了。<br>是不是?<br>
 
我也是这么想,但是在程序里我该怎么做???怎样写出具有相同功能的代码???不用调用<br>外部copy命令
 
恐怕你得直接与硬盘打交道了。文件的每个簇都有记录下个簇在哪里。找到该文件的最后一个<br>簇,修改他的文件结束标志,并指向下一个簇,也就是下一个文件的开始簇。<br>以前和人讨论过,但我真的不会做,不知道其他大虾门...
 
xygz:系统不可能按你的想法连接,文件分配按簇进行,如果第一个占用五个簇零一个字节,实际要用六个簇,FAT表是簇的联结,你想第二个文件加上之后实际上目前包含了第六个整簇,不对了!!!
 
tianhf: 这种情况是正常的啊。一个一个字节的文件也要占1K的大小,而且还与文件的系统有关,<br>&nbsp;这就是编程要考虑的事情了。<br>实际上文件不会只占用一个字节,而是整个簇。如果情况象你所说的,系统会报告占用了6个<br>簇,而不是5个簇和一个字节,虽然系统报告文件 的大小是实际的大小。
 
多人接受答案了。
 
后退
顶部