2つの重要な機能TIdFTP
プロジェクトの開発プロセスは、サーバー上のファイル/ディレクトリを直接プロセスのために、非常に危険なことであるファイル/パスが存在しないと、プログラムは例外がスローされますので、カスタマーエクスペリエンスに影響を与えることがわかりました。サーバ上のファイル/ディレクトリにアクセスする前に、したがって、我々は、一般に、第1のサーバ上のパス/ファイルが存在するかどうかを決定し、次いでさらなる処理。
サーバやファイルパスを分析することFtpDirectoryExistsが存在します
次のコードを考えてみます。
1 関数 TMainFrm.FtpDirectoryExists(ADIR:文字列):ブール; 2 VAR 3 I、インデックス:整数; 4 strlist:TStringListの。 5 ファイル名:文字列; 6 B:ブール。 7 開始 8 件の検索結果を:= falseは、 9 インデックス:= 0 ; 10 strlist:= TStringListの。作成します。 11 strlist.Clear。 12 idFTP.List(strlist、'' 、TRUE); 13 なら strlist.Count> 0 、次いで 14 開始 15 用のI:= 0 に strlist.Count - 1 ない 16 始まる 17 ファイル名:= (strlist.Strings [I])をトリム。 18 B:= 真; 19 ながら B ん 20は 開始 21 であれば順位(' '、ファイル名)> 0が 、その後 22は 開始 23 名:=トリム(コピー(ファイル名、順位(' ' 、ファイル名)、長さ(ファイル名)))。 24 端部、 25 もし順位(' '、ファイル名)= 0 その後、 B:= falseは、 26 端部、 27は 場合、ファイル名= ADIRは、その後、 28は 開始 29 件の検索結果を:= はtrue。 30 休憩; 31 端部、 32 端部、 33 端部、 34 strlist.Free。 35 端部、
FTPパスの作成/フォルダCreateFtpDir
次のコードを考えてみます。
1 手順 TMainFrm.CreateFtpDir(V_Path:文字列); 2 VAR 3。 I、J、K:整数; 4。 sFtpPath、S:TStringListの; 5。 t_Path、SSTR:文字列; 6。 始める 7。 sFtpPath :. = TStringListの作成; 8。 sFtpPath.Clear ; 9 sFtpPath.Delimiter:= ' / ' ; 10 sFtpPath.DelimitedText:= V_Path; 11 idFTP.ChangeDir(' / ' ); 12れる // 自動的に作成されたディレクトリが存在するかどうかを確認しないあります 13 のための K:= 0 に - sFtpPath.Count 1 ない 14は 開始 15 SSTR:= sFtpPath [k]を、 図16は、 お試し 17を 場合 ない FtpDirectoryExists(SSTR) 、次いで 18 idFTP.MakeDir(SSTR)。 19 を除く 20 E上:例外はない 21 始める 22 ヌルを。 23 エンド; 24 端部、 25 idFTP.ChangeDir(SSTR + ' / ' )。 26 端部、 27 sFtpPath.Free; 28 エンド ;