电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

BCB编程中实现断点续传


发布日期:2024/3/28
 

NMFTP是Delphi、Borland C++ Builder(以下简称BCB)自带的FastNet控件组中的一个组件,主要用于实现FTP上传、下载等功能。它在开发一些小型、简单的网络应用软件时非常有用。笔者最近在使用BCB6开发一套FTP客户端软件时需要实现断点上(续)传(以下用"断点续传"特指断点上(续)传),最终通过NMFTP得以实现,在此将问题解决过程写出来,与广大程序员共飨。

一、系统函数假续传

用过NMFTP的朋友都知道,NMFTP有三个上传函数可以满足绝大部分的上传操作。它们分别是:Upload()、UploadAppend()、UploadRestore()、UploadUnique(),这四个函数的原型为:

procedure Upload(LocalFile, Remote

File: string);

procedure UploadAppend(LocalFile, RemoteFile: string);

procedure UploadRestore(LocalFile, RemoteFile: string; Position: Integer);

procedure UploadUnique(LocalFile: string);

笔者的软件要求在FTP服务器不授予"删除"权限的条件下完成文件传输,且上传的文件要与本地文件同名。tW.wIngwiT.CoM因此断点续传是解决问题的唯一途径。通过帮助文档可以知道,UploadRestore()、UploadAppend()两个函数都能满足要求,两者唯一不同之处在于前者需要指定断点位置,而后者自动将文件接续在已上传的文件后(服务器上文件名需要与"RemoteFile"参数指定的文件名相同)。

实际使用过程中,发现两者确实都可以完成续传的目的,但是直接使用这两个函数完成续传以后的文件无法使用,而文件大小是续传前的大小与原文件大小之和,也就是说,这两个函数完成的"续传"是把文件从前次断点处重新从头传了一遍,而并没有真正的从断点处"续传"。

上一篇:用VBA实现图像文字随意拖

下一篇:找不到指定dll模块