NMFTPでリモートホストのディレクトリリストを取得するには?


Pieasant  2005-02-07 23:28:42  No: 13096

はじめまして、Pieasant です。
ただ今、NMFTPコンポーネントを使用して、FTPクライアントを作成中です。
初心者なので、早くも壁にぶちあたってしまいました。
以下に(Connect 正常終了後)の現象を述べます。

NMFTP1の[ParseList] プロパティは ”True”に設定してあります。
[現象]
ChangeDir メソッドで作業ディレクトリが指定のディレクトリに変更されたあと、
List メソッドでリモートホストで指定したディレクトリの
詳細なディレクトリリストを取得する。

List コマンドが正常に終了した後の処理をNMFTP1のOnSuccess イベントで
FTPDirectoryList の各プロパティ(Name プロパティ)を取得しようとすると、

NMFTP1.FTPDirectoryList.Name.Count 

が常に0となってしまう。(FTPDirectoryListが取得できない。。。)

のです。どなたか解決策をご教授お願い致します。

[開発環境]
OS:Windows 2000
Delphi 5 Enterprise

以下のサンプルは、リモートホストとの接続が成功したあとの
ものです。

- サンプル ---------------------------------------------------------------------
・・・

private
  FTPList : TFTPDirectoryList;
  DirList : TStringList;

・・・

{リモートホストとの接続確立時実行処理}
procedure TfrmMain.NMFTP1Connect(Sender: TObject);
begin
  FTPList := TFTPDirectoryList.Create;
  DirList := TStringList.Create;

  NMFTP1.ChangeDir('テストディレクトリ');
end;

{リモートホストとの接続切断時実行処理}
procedure TfrmMain.NMFTP1Disconnect(Sender: TObject);
begin
  FTPList.Free;
  DirList.Free;
end;

{FTPコマンド正常終了時イベント}
procedure TfrmMain.NMFTP1Success(Trans_Type: TCmdType);
var
  i, iCnt : integer;
begin
  case (Trans_Type) of
    cmdList     :begin
      FTPList := NMFTP1.FTPDirectoryList;
      iCnt := FTPList.name.Count;
      for i := 0 to iCnt - 1 do begin
        DirList.Append(FTPList.Name[i]);
      end;
    end;

    cmdChangeDir :begin //ChangeDirectoryコマンド
      NMFTP1.List;
    end;
  end;
end;


マッコ  2005-03-03 09:35:29  No: 13097

D6で試して見ましたができました、
少し質問してもよろしいですか
private
  FTPList : TFTPDirectoryList;//これって必要ですかコンポーネントが勝手に生成してくれると思いますが?
これがあると終了時に書き込みエラーが出るのですが。
  DirList : TStringList;

・・・


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加