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中的ShellTreeview控件里的目录或文件能否多选中?
- 如何取出,分开的实数下面是一个string
- 如何获取系统串口所有的信息?
- *****救命啦!!!时间段问题,兄弟们,up有分
- 過濾計算字段!很急!在線
- 请各位高手发表一下意见,注册表和ini的优劣之处,有朋友说注册表写的数据多了会占内存,可能吗?
- 简单的问题
- 请教大侠:程序运行时,通过弹出菜单或者按纽给treeview控件中选中的节点增加子节点怎么实现?
- 又一个奇怪的问题:Component-->Import ActiveX中居然没有一个控件!
- 如何获取VB程序中表格的内容
- win7上安装delphi7的问题
IdFTP1.ChangeDir(strnowdir);还需要再调用List方法,改成下面的试试 if (IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory ) then
begin
IdFTP1.ChangeDir(strnowdir);
idftp1.List(Dir_List);
end;