我写了一个ftp上传程序,但不知道怎么才能将ftp服务器上的目录和文件在窗体listview控件上显示出来,哪位做过ftp的请赐教,不胜感谢。
   在线等。

解决方案 »

  1.   

    procedure TFTPMain.RemoteUpdateListing;
    var
        F: TWin32FindData;
        Enum: HInternet;
        R: Bool;
        FileName: string;
        FileSize: Int64;
        Magic:integer;
        item1:Tlistitem;
    begin
        Enum := nil;
        with Lview2 do
        try
            Clear;
            Update;
            Enum := FtpFindFirstFile(FtpHandle, PChar(FRemotePath + '*.*'), F, 0, 255);
            R := Enum <> nil;
            item1:=Lview2.Items.Add();
            item1.SubItems.Add('');
            item1.SubItems.Add('');
            item1.SubItems.Add('');
            LvAdd('..',0,0,item1);
        while R do
        begin
            FileName := F.cFileName;
            if Filename<>'.' then
            begin
                item1:=Lview2.Items.Add();
                item1.SubItems.Add('');
                item1.SubItems.Add('');
                item1.SubItems.Add('');
                LvAdd(Filename,0,0,item1);
                FileSize := (F.nFileSizeHigh shl 32) or (F.nFileSizeLow);
                if F.dwFileAttributes and faDirectory = faDirectory then
                begin
                    item1.ImageIndex:=1;
                    item1.SubItems.Strings[0]:='目录';//文件夹
                    item1.SubItems.Strings[1]:= '0';
                end
                else
                begin
                    item1.ImageIndex:=0;
                    item1.SubItems.Strings[0]:='';//文件夹
                    item1.SubItems.Strings[1]:= FileSizeToString(FileSize);
                    item1.SubItems.Strings[2]:=
                    GetFileTypeDescription(FRemotePath + FileName, True);
                end;
           end;
            R := InternetFindNextFile(Enum, @F);
        end;
        finally
            InternetCloseHandle(Enum);
            RemoteSort:=True;
        end;
    end;
      

  2.   

    请问你的编译环境是什么,win32还是net?是ftp协议吗?
      

  3.   

    那是不是需要在unit uses中加些说明呀,我刚才试了,象ftpfindfirstfile ,hinternet等都是不合法的呀,在帮助文档里,我没找到它们所在的类
      

  4.   

    不用呀,住窗体的文件头的
    use 语句中有
    Wininet
    你说的函数就在该单元