procedure TKAIKAIMAIN.xiazai(ftplj,bdlj:string);
var
strnowdir,FileName : string; // FileName,name,
Dir_List:TStringList;
i: Integer;
begin i:=0;
try
strnowdir:=ftplj;
if idftp1.RetrieveCurrentDir<>'\' then
begin
IdFTP1.ChangeDirUp;
IdFTP1.ChangeDirUp;
IdFTP1.ChangeDirUp;
end;
IdFTP1.ChangeDir(strnowdir);
Dir_List:=TStringList.Create;
idftp1.List(Dir_List);
IDFTP1.TransferType:=ftBinary;
if Dir_List.Count=0 then Exit;
//判断是否是目录 if (IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory ) then
begin
IdFTP1.ChangeDir(strnowdir);
end; for i:=0 to Dir_List.Count-1 do
begin
FileName:=IdFTP1.DirectoryListing.Items[i].FileName;
showmessage(FileName);
if (IdFTP1.DirectoryListing.Items[i].ItemType = ditFile) then
//本地若存在文件,判断下载后是否覆盖本地文件 // and (IdFTP1.DirectoryListing.Items[i].ModifiedDate > StrToDate('2011-3-19'))
begin
if FileExists(bdlj+IdFTP1.DirectoryListing.Items[i].FileName) then
begin
//ShowMessage('文件己下载');
Continue;
end
else
begin
IdFTP1.Get(IdFTP1.DirectoryListing.Items[i].FileName,bdlj+IdFTP1.DirectoryListing.Items[i].FileName,False,true);
end;
end ;
end;
// showmessage(ftplj+'下载成功');
Dir_List.Free;
except
;
end;end;
每次执行到IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory 就报出这个异常
var
strnowdir,FileName : string; // FileName,name,
Dir_List:TStringList;
i: Integer;
begin i:=0;
try
strnowdir:=ftplj;
if idftp1.RetrieveCurrentDir<>'\' then
begin
IdFTP1.ChangeDirUp;
IdFTP1.ChangeDirUp;
IdFTP1.ChangeDirUp;
end;
IdFTP1.ChangeDir(strnowdir);
Dir_List:=TStringList.Create;
idftp1.List(Dir_List);
IDFTP1.TransferType:=ftBinary;
if Dir_List.Count=0 then Exit;
//判断是否是目录 if (IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory ) then
begin
IdFTP1.ChangeDir(strnowdir);
end; for i:=0 to Dir_List.Count-1 do
begin
FileName:=IdFTP1.DirectoryListing.Items[i].FileName;
showmessage(FileName);
if (IdFTP1.DirectoryListing.Items[i].ItemType = ditFile) then
//本地若存在文件,判断下载后是否覆盖本地文件 // and (IdFTP1.DirectoryListing.Items[i].ModifiedDate > StrToDate('2011-3-19'))
begin
if FileExists(bdlj+IdFTP1.DirectoryListing.Items[i].FileName) then
begin
//ShowMessage('文件己下载');
Continue;
end
else
begin
IdFTP1.Get(IdFTP1.DirectoryListing.Items[i].FileName,bdlj+IdFTP1.DirectoryListing.Items[i].FileName,False,true);
end;
end ;
end;
// showmessage(ftplj+'下载成功');
Dir_List.Free;
except
;
end;end;
每次执行到IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory 就报出这个异常
解决方案 »
- delphi 多线程实时通讯 求救
- 大仙求命啊,这样的问题
- 求教这方面有经验的老兄帮帮忙
- ado连接问题
- 關於調用Chm文件.解決後高分謝.
- 在线等待...(关于制作DBGrid组件-如何在组件初始化的时候取出DBGrid.Column.Count的值)
- [Fatal Error] dclusr.dpk(41): File not found: 'FolderDialog.dcu'
- 有办法在运行期间改变dbgrid的title的caption吗?
- C#好还是JAVA好还是Delphi好?????
- 急,急,急,在ToolButton中加上的图片怎样才能占满全部的button的表面
- 如何获取VB程序中表格的内容
- win7上安装delphi7的问题
IdFTP1.ChangeDir(strnowdir);还需要再调用List方法,改成下面的试试 if (IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory ) then
begin
IdFTP1.ChangeDir(strnowdir);
idftp1.List(Dir_List);
end;