0

インデックス作成(メインディレクトリとサブディレクトリ)用にFTPサーバー内のすべてのファイルを一覧表示したい。

サーバーでアクセス可能なファイルの完全なリストを取得するにはどうすればよいですか?

4

2 に答える 2

8

Indyには、メソッドとプロパティTIdFTPを持つコンポーネントがあります。呼び出して、必要に応じて結果をループします。の各項目は、それがファイルであるかサブフォルダーであるかを示します。システム全体にインデックスを付ける必要がある場合は、サブフォルダーごとに再帰ループを呼び出す必要があります。List()DirectoryListingList()DirectoryListingDirectoryListingList()

覚えておくべきことがあります。今日でもインターネット上のFTPサーバーで使用されているプラ​​ットフォーム固有のディレクトリリスト形式は文字通り何百もあります。元のLISTFTP仕様であるRFC959で概説されているコマンドは、リストに使用されるフォーマットを定義していなかったため、システムは使用したいものを自由に使用でき、何年にもわたってそれを実行していました。WindowsおよびUnix形式が一般的ですが、必須ではありません。正式なリスト形式は、FTPの拡張機能でRFC 3659まで定義されていませんでした。これは、古いコマンドMLSDを置き換えます(サーバーがサポートしている場合は使用します)。LISTTIdFTP.List()MLSD

TIdFTPIndy 10ではプラグインシステムを使用してこれらのさまざまなリスト形式の多くをサポートしているため、これについて言及します。各フォーマットはIdFTPListParse...、Indyの個別のユニットに実装されています。デフォルトでは、NLSTMLSDフォーマットのみが常に有効になっています。サポートしたい他のリスト形式については、それを認識するために、適切なIdFTPListParse...単位を句に含める必要があります。たとえば、および。または、使用可能なすべてのパーサーを有効にするユニットがあります。を呼び出すと、プロパティは生のリストデータの解析に使用されたパーサーの名前に設定されます。usesTIdFTPIdFTPListParseUnixIdFTPListParseWindowsIdAllFTPListParsersTIdFTP.List()TIdFTP.DirFormat

于 2012-12-03T20:44:15.107 に答える
1

FTPプロトコルは、RFC959に文書化されています。ファイルを一覧表示するコマンドはLIST、セクション4.1.3に記載されているように呼び出されます。

于 2012-12-03T18:17:02.703 に答える