用api复制文件
我设想开几个线程,每个线程从同一个文件的不同位置开始复制,到另外一个地方
再组装起来,线程我会,但我对有关的api不太熟,msdn光盘我有,看着太累,可
否请哪位大侠给个例子我学习一下?(指从文件的某一处开始读写)
问题点数:50、回复次数:13Top
1 楼hubdog()回复于 2000-03-02 07:25:00 得分 15
用TFilestream不就可以吗?它有seek或position来定位,然后read不就完了
。Top
2 楼929()回复于 2000-03-02 08:23:00 得分 5
我觉得HUBDOG说的不错,用TFILESTREAM就可以完成。在《DELPHI3开发人员手册》中有例子。Top
3 楼jll(你快乐,所以我快乐)回复于 2000-03-02 08:51:00 得分 25
你是不是想编一个类似网络蚂蚁的程序。根据我操作文件的经验,同时拷贝、读写多个文件时,各个文件的拷贝、读写时间都会延长一些。真正有价值的是,操作硬盘上一个文件的同时,再操作软盘上的一个文件,这样在时间上很划算。Top
4 楼sadpacific(皮卡丘)回复于 2000-03-02 10:09:00 得分 0
我跟。Top
5 楼wlq()回复于 2000-03-02 16:37:00 得分 0
我试了一下,TfileStream确实好用,但我尝试了一下把文件拆成几块后分别
存放在硬盘上,发现只有txt文件可以,其他文件不行,请问如何解决?Top
6 楼jll(你快乐,所以我快乐)回复于 2000-03-02 18:24:00 得分 0
并不是所有文件都可以拆开后各自工作,大多数文件都有特定得结构,最常见得是文件头信息加文件数据。
当然有些文件是可以拆开的,如:MP3(很高兴吧)
最后,一般可以拆开的文件也可以合并,我自己的MP3库中只有一个MP3文件,我自己把所有想听的歌合并成一首。这样的好处是连续播放,不会出现换曲的时候机器突然变慢的情况,坏处是无法调整播放顺序。Top
7 楼agui(阿贵: 高级图形用户界面)回复于 2000-03-02 18:38:00 得分 0
我看这个文件蚂蚁的方法不实用,网络蚂蚁实用在于Internet比较慢,所以可以从不同位置用多线程先放在本地盘的多个临时文件。该方法用于本地或局域网时无疑反而是降低了效率。可说是“东施效颦”。
用TFileStream应当是可以存取非文本文件的(本人实践过),关键是在内存你怎样操作。Top
8 楼wlq()回复于 2000-03-02 21:28:00 得分 0
那么请问,如何操作内存呢
我想拆分zip文件,不知是否还要了解zip的文件格式
不知网络蚂蚁是怎么做的Top
9 楼hubdog()回复于 2000-03-02 22:41:00 得分 0
蚂蚁根本不管什么文件格式,它把文件都分成几份,存成另外的扩展名,当全部
文件下载好了,再把所有文件拼接起来。
>>我试了一下,TfileStream确实好用,但我尝试了一下把文件拆成几块后分别
>>存放在硬盘上,发现只有txt文件可以,其他文件不行,请问如何解决?
没明白你什么意思,拆成几块后,必须拼接好才能用啊?你到底想干什么?Top
10 楼ForrestSong()回复于 2000-03-02 23:05:00 得分 5
你的目标文件必须设置成与源文件同样大小,保存后再在各线程中共享随机读写方式打开
接受实际内容.Top
11 楼wlq()回复于 2000-03-02 23:42:00 得分 0
>>目标文件必须设置成与源文件同样大小保存后再在各线程中共享随机读写方式打开
哎呀,我还没注意这个问题,马上试试看
to hubdog:
文件最后拼接时,出现访问冲突
btw:孙老师的信箱是在263.net吗Top
12 楼jll(你快乐,所以我快乐)回复于 2000-03-03 00:15:00 得分 0
文件访问冲突可能是企图同时打开同一个文件进行写操作。Top
13 楼wlq()回复于 2000-03-03 01:21:00 得分 0
线路不好,拨了半个小时的号:(
文件组装成功,访问冲突是由于在给文件块分配缓冲区时出了问题
我最后还有一点不懂:有什么办法能建立一个任意扩展名的文件?如果不行的话,
那么在磁盘上建临时存储区用什么方法?Top




