{ 调用示例: 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;