FTP客户端程序上的一个问题,ditDirectory没有声明 ( 积分: 20 )

  • 主题发起人 主题发起人 忘记说爱你
  • 开始时间 开始时间

忘记说爱你

Unregistered / Unconfirmed
GUEST, unregistred user!
//如果当前为目录,插入到文件项前面

if IdFTP1.DirectoryListing.Items[FileCount].ItemType=ditDirectory then
begin
newItem:=RemoteFileList.Insert(FolderCount);
newItem.ImageIndex:=0;
newItem.SubItems.Add('文件夹');
end
else begin
//如果当前项为文件,直接添加到列表后面
newItem:=remoteFileList.Items.Add;
newItem.ImageIndex:=1;
newItem.SubItems.Add('');
end;

[Error] Unit1.pas(108): Undeclared identifier: 'ditDirectory'
这是FTP客户端源程序上的一段,使我从书上抄来的, 可是书上没有对
ditDirectory声明的地方,我从网上查来别的资料中也没有对它声明的地方,
到底怎么回事呢?
谁能帮我回答呢?
 
//如果当前为目录,插入到文件项前面

if IdFTP1.DirectoryListing.Items[FileCount].ItemType=ditDirectory then
begin
newItem:=RemoteFileList.Insert(FolderCount);
newItem.ImageIndex:=0;
newItem.SubItems.Add('文件夹');
end
else begin
//如果当前项为文件,直接添加到列表后面
newItem:=remoteFileList.Items.Add;
newItem.ImageIndex:=1;
newItem.SubItems.Add('');
end;

[Error] Unit1.pas(108): Undeclared identifier: 'ditDirectory'
这是FTP客户端源程序上的一段,使我从书上抄来的, 可是书上没有对
ditDirectory声明的地方,我从网上查来别的资料中也没有对它声明的地方,
到底怎么回事呢?
谁能帮我回答呢?
 
procedure TForm1.ComboHistoryChange(Sender: TObject);
//RemoteChangeDirExecute过程将ComBoHistory中的内容设置为FTP服务器的当前目录,并且通过TIdFTP的List
//过程得到服务器的文件列表,显示在RemoteFileList组件中.
Var
LS:TStringList;
FileCount:Integer;
NewItem:TlistItem;
FolderCount:Integer;
begin
try
LS:=TStringList.Create; //创建LS对象
IdFTP1.ChangeDir(ComboHistory.Text); //调用ChangeDir更换当前目录到选定目录
//以下代码显示当前目录列表
RemoteFileList.Items.Clear; //清空文件列表已有数据
//默认参数调用List过程,利用DirectoryListing的解析结果,可以获得文件的各种属性
IdFTP1.List(LS);
FolderCount:=0;
for FileCount:=0 to LS.Count-1 do
begin
//如果当前为目录,插入到文件项前面

if IdFTP1.DirectoryListing.Items[FileCount].ItemType=ditDirectory then
begin
newItem:=RemoteFileList.Insert(FolderCount);
newItem.ImageIndex:=0;
newItem.SubItems.Add('文件夹');
end
else begin
//如果当前项为文件,直接添加到列表后面
newItem:=remoteFileList.Items.Add;
newItem.ImageIndex:=1;
newItem.SubItems.Add('');
end;
newItem.Caption
FTPClient.DirectoryListing.Items[FileCount].FileName;
newItem.SubItems.Add(IntToStr(FTPClient.DirectoryListing.Items[FileCount].Size));
newItem.SubItems.Add(DateToStr(FTPClient.DirectoryListing.Items[FileCount].ModifiedDate));
end;
finally
LS.Free;
end;
end;
end;

这是整个procedure,实现的功能是将目录和文件分开排列的目的。
 
試試這個:
procedure TForm2.List(DirName: string); //目錄顯示
var NewItem:TListItem;
i:integer;
LS: TStringList;
begin
Ls:=TStringList.Create;
ListView1.Clear;
IdFTP1.ChangeDir(DirName);
IdFTP1.List(Ls);
CurrentDirEdit.Text:=IdFTP1.RetrieveCurrentDir;
for i:=0 to IdFTP1.DirectoryListing.Count-1 do
begin
With IdFTP1.DirectoryListing.Items do
begin
if (FileName='.') OR (FileName='..') then Continue;
NewItem:=ListView1.Items.Add;
NewItem.Caption:=FileName;
NewItem.SubItems.Add(IntToStr(Size));
if ItemType=ditDirectory then
begin
NewItem.StateIndex:=0;
NewItem.SubItems.Add('文件夾類型');
end
else
begin
NewItem.SubItems.Add('其它類型');
end;
NewItem.SubItems.Add(FormatDateTime('yyyy/mm/dd hh:mm', ModifiedDate));
NewItem.SubItems.Add(OwnerName);
end;
end;
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
840
DelphiTeacher的专栏
D
后退
顶部