ftpforcedirectories indyftp

原创
2014/04/22 20:45
阅读数 66
 {
  调用示例:
  idftp.Connect();
  FTPForceDirectories(idftp, '/abc/123/567');
}
function FTPForceDirectories(ftp: TIDFTP; Dir: string): Boolean;
var
  dirNames, lst: TStrings;
  tmpdir, str: string;
  i, j: Integer;
  found: Boolean;
begin
  Result := False;
  lst := TStringList.Create;
  dirNames := TStringList.Create;
  dirNames.Text := StringReplace(Dir,'/', #$D#$A, [rfReplaceAll]);

  try
    try
      );
      for i := 0 to dirNames.Count - 1 do begin
        tmpdir := dirNames[i];
        if tmpdir = '' then continue;
        );
        found := False;
        for j := 0 to lst.Count - 1 do begin
          str := lst[j];
          if (str[1]='d') and Sametext(Copy(str, 56, 255), tmpdir) then begin
            found := True;
            Break;
          end;
        end;
        if not found then );
        );
      end;
      Result := true;
    except
      on E: Exception do begin

      end;
    end;
  finally
    dirNames.free;
    lst.free;
  end;
end;

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
vga博主
这是 d7 (indy 9.x)下的

若用 indy 10.x ,则 需将56 -> 61, 才能正确取得 文件名,列目录方法也要改变
2014/04/23 06:47
回复
举报
更多评论
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部