FTPの使い方
FTPを使うとインターネット経由でファイルのやり取りを行うことができます。
FTPサイトに接続するには
RemoteHost,RemotePort,LocalPortプロパティを設定してConnectメソッドを実行します。切断はQuitコマンドを使用します。
例
{ OLEでパラメータを省略する時使用する }
function TfrmFtpSamp.NoParam: Variant;
begin
TVarData(Result).VType := varError;
TVarData(Result).VError:= DISP_E_PARAMNOTFOUND;
end;
{ 接続する }
procedure TfrmFtpSamp.cmdConnectClick(Sender: TObject);
begin
with FTP1 do begin
RemoteHost := txtRemoteHost.Text;
RemotePort := StrToInt(txtRemotePort.Text);
LocalPort := StrToInt(txtLocalPort.Text);
Connect(NoParam, NoParam);
lblConnect.Caption := StateString;
end;
end;
プロパティ設定例
ホストの認証を得るには
接続ができたらホストにユーザIDとパスワードを送って認証を受けなければなりません。認証には、匿名ID(anonymous)を使える場合もあります。
ProtocolStateChangedイベントでProtocolStateがftpAuthenticationになったら、Authenticateメソッドで認証を受けます。
例
{ プロトコルの状態が変化するとき }
procedure TfrmFtpSamp.FTP1ProtocolStateChanged(Sender: TObject;
ProtocolState: Smallint);
begin
case ProtocolState of
ftpAuthentication:
begin
FTP1.Authenticate(txtUserID.Text, txtPassword.Text); // 認証
lblConnect.Caption := '認証中';
end;
ftpTransaction:
begin
lblConnect.Caption := '認証が成功した(接続)';
end;
end;
end;
ファイルを送る(受け取る)には
FTPサイトへファイルを送るにはPutFileメソッドを使います。ファイルを受け取るにはGetFileメソッドを使用します。
例
{ ファイル転送を行なう }
procedure TfrmFtpSamp.cmdPutClick(Sender: TObject);
begin
FTP1.PutFile(txtFileName.Text, txtRemoteFile.Text);
lblConnect.Caption := FTP1.ReplyString;
end;
{ ファイル取得を行なう }
procedure TfrmFtpSamp.cmdGetClick(Sender: TObject);
begin
FTP1.OleObject.GetFile(txtRemoteFile.Text, txtFileName.Text);
lblConnect.Caption := FTP1.ReplyString;
end;
ファイルの一覧を得るには
FTPサイトのファイル一覧を得るにはListメソッドを使います。この例は\Delphi3\Demos\Internet\Ftpにあります。
「Delphi4 パワーガイド」の「6-17 FTPを使うには」も参考にしてください。