Delphi5でIndy(IdFTP)を使用してFTP接続でファイルをダウンロードする
古きよきDelphi5でFTP接続をしてファイルをダウンロードするサンプルです。コンポーネントはIndyのIdFTPを使用します。Indyのインストール方法から解説しますので直ぐに試す事ができます。
開発環境
今回はDelphi5ですが、それ以外の環境でもほぼインストール可能だと思います。
1.Indyのダウンロード
1.1 Indyの公式へアクセスします。
1.2 Indy.Sockets (VCL)をクリックします。
1.3 その次にページ下部にあるDownloadsをクリックします。
1.4 今回はVersion 10 - Latest releaseを使用します。
1.5 Source Code をクリックするとダウンロード開始です。
2.Indyのインストール
ダウンロードしたファイルを展開します。
2.1 dpkファイルをインストールする その1
インストールする前にオプションで「設計/実行時とも使用可能」にします。
・indy10.0.52_source\System\IndySystem50.dpk
・indy10.0.52_source\Core\IndyCore50.dpk
・indy10.0.52_source\Protocols\IndyProtocols50.dpk
2.2 dpkファイルをインストールする その2
次はオプションを変更せずにそのままインストールします。
・indy10.0.52_source\Core\dclIndyCore50.dpk
・indy10.0.52_source\Protocols\dclIndyProtocols50.dpk
2.3 ツール→環境オプションでライブラリパスにパスを追加する
※もっとスマートに出来ると思います。久しぶりにDelphiを触ったもので・・
2.4 インストール完了
インストールするとこんな感じになります。
3.FTP接続してファイルをダウンロードする
下図のようにコンポーネントを配置します。(IdFTPはIndy Clientsにあります)
procedure TForm1.Button1Click(Sender: TObject);
var
srcFile,dstFile: String;
Stream : TMemoryStream;
begin
// FTPログインの基本設定
IdFTP1.Host := '';
IdFTP1.Username := '';
IdFTP1.Password := '';
srcFile := '/data/test.txt'; // 読み込むファイル名
dstFile := 'C:\data\test.txt'; // 書き込むファイル名
try
IdFTP1.Connect;
except
IdFTP1.Disconnect;
ShowMessage('FTP接続に失敗しました。');
Exit;
end;
// ファイルのダウンロード
Stream := TMemoryStream.Create;
try
try
IdFTP1.Get(srcFile, Stream);
except
end;
if (Stream.Size<>0) then
Stream.SavetoFile(dstFile)
else
ShowMessage('ファイルが見つかりませんでした。');
finally
Stream.free;
end;
IdFTP1.Disconnect;
end;
あとがき
FTP接続はIDやパスワードが悪意のある第三者に盗聴される可能性が高いです。オープンな環境で無い場合はできるだけSFTP/FTPS接続を使用して下さい。但し、IndyでSFTP/FTPS接続が可能かは確認しておりませんのでご了承下さい。
関連記事
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









