D
dafuwengqing
Unregistered / Unconfirmed
GUEST, unregistred user!
大哥们:
我用FTP的Download函数
下载文件老是在20多M时出现
access violation at address 00000000 read of address 00000000
每个大于20M的文件的下载都是这样
后来我发现是因为Timeout值太小了
但是增大了TimeOut值可以下载了
还有一个问题,就是断点下载是,中断一次后,老是下载不完整就差最后几个字节
为什么?
程序为:
procedure TForm1.BTN_CONNECTClick(Sender: TObject);
begin
NMFTP.vendor:=NMOS_AUTO;
NMFTP.Host := HostTxt.Text;
NMFTP.port:=strtoint(PortTxt.Text);
NMFTP.Timeout := 100000;
NMFTP.UserId :=UserTxt.Text;
NMFTP.Password := PassTxt.Text;
try
NMFTP.Connect;
except
on E:Exception do
writeln(E.message);
end;
BTN_CONNECT.Enabled:=FALSE;
end;
procedure TForm1.BTN_DOWNLOADClick(Sender: TObject);
var i:integer;
Name, Line: String;
IsDirectory:boolean;
//filename:string;
begin
for i:=0 to list_host.Items.Count-1 do
begin
if list_host.Selected=true then
begin
Line := list_host.Items[list_host.ItemIndex];
if FileExists(filelistbox.Directory+'/'+Line) then
begin
if messagebox(form1.Handle,'文件已存在!要覆盖吗?','提示',MB_YESNO)=IDNO then
nmftp.DownloadRestore(Line,filelistbox.Directory+'/'+Line)
else
nmftp.Download(Line,filelistbox.Directory+'/'+Line);
end
else
nmftp.Download(Line,filelistbox.Directory+'/'+Line);
end;
end;
end;
我用FTP的Download函数
下载文件老是在20多M时出现
access violation at address 00000000 read of address 00000000
每个大于20M的文件的下载都是这样
后来我发现是因为Timeout值太小了
但是增大了TimeOut值可以下载了
还有一个问题,就是断点下载是,中断一次后,老是下载不完整就差最后几个字节
为什么?
程序为:
procedure TForm1.BTN_CONNECTClick(Sender: TObject);
begin
NMFTP.vendor:=NMOS_AUTO;
NMFTP.Host := HostTxt.Text;
NMFTP.port:=strtoint(PortTxt.Text);
NMFTP.Timeout := 100000;
NMFTP.UserId :=UserTxt.Text;
NMFTP.Password := PassTxt.Text;
try
NMFTP.Connect;
except
on E:Exception do
writeln(E.message);
end;
BTN_CONNECT.Enabled:=FALSE;
end;
procedure TForm1.BTN_DOWNLOADClick(Sender: TObject);
var i:integer;
Name, Line: String;
IsDirectory:boolean;
//filename:string;
begin
for i:=0 to list_host.Items.Count-1 do
begin
if list_host.Selected=true then
begin
Line := list_host.Items[list_host.ItemIndex];
if FileExists(filelistbox.Directory+'/'+Line) then
begin
if messagebox(form1.Handle,'文件已存在!要覆盖吗?','提示',MB_YESNO)=IDNO then
nmftp.DownloadRestore(Line,filelistbox.Directory+'/'+Line)
else
nmftp.Download(Line,filelistbox.Directory+'/'+Line);
end
else
nmftp.Download(Line,filelistbox.Directory+'/'+Line);
end;
end;
end;