想获取服务端的目录下文件所占的空间大小。另外还想搜索目录下的文件。请高手指点。马上结贴。

解决方案 »

  1.   

    没用过ID的,用过ICS的,应该需要根据返回的文本内容去判断
      

  2.   

    1)Indy的需要自己编写递归实现
    2)如果服务器支持List —aL参数,就直接可以获得完整目录以及子目录的列表
    对于搜索也很适用
      

  3.   

    递归不好控制,因为有时会设置公用目录,也就是说每进入一个目录,都会显示这个目录。
    还有一些如‘.’ ‘..’的目录,必须处理
    还有那些每个目录都有返回根目录的目录,递归时也容易陷入死循环。 
    另外对于‘.lnk’的目录处理也容易出问题。
    要求递归时要对相对路径检查,否则完蛋。
      

  4.   

    delphi demo里的代码,显示如何判断list回来的目录信息里的一行是否目录及得到子目录(或文件)名
    你只要针对每个目录反复changedir、list及判断就能得到所有的目录名
    不要告诉我你需要所有的代码function GetNameFromDirLine(Line: String; Var IsDirectory: Boolean): String;
    Var
      i: Integer;
      DosListing: Boolean;
    begin
      IsDirectory := Line[1] = 'd';
      DosListing := false;
      for i := 0 to 7 do begin
      if (i = 2) and not IsDirectory then begin
      IsDirectory := Copy(Line, 1, Pos(' ', Line) - 1) = '<DIR>';
      if not IsDirectory then
      DosListing := Line[1] in ['0'..'9']
      else DosListing := true;
      end;
      Delete(Line, 1, Pos(' ', Line));
      While Line[1] = ' ' do Delete(Line, 1, 1);
      if DosListing and (i = 2) then break;
      end;
      Result := Line;
    end;