インデックス作成(メインディレクトリとサブディレクトリ)用にFTPサーバー内のすべてのファイルを一覧表示したい。
サーバーでアクセス可能なファイルの完全なリストを取得するにはどうすればよいですか?
インデックス作成(メインディレクトリとサブディレクトリ)用にFTPサーバー内のすべてのファイルを一覧表示したい。
サーバーでアクセス可能なファイルの完全なリストを取得するにはどうすればよいですか?
Indyには、メソッドとプロパティTIdFTP
を持つコンポーネントがあります。呼び出して、必要に応じて結果をループします。の各項目は、それがファイルであるかサブフォルダーであるかを示します。システム全体にインデックスを付ける必要がある場合は、サブフォルダーごとに再帰ループを呼び出す必要があります。List()
DirectoryListing
List()
DirectoryListing
DirectoryListing
List()
覚えておくべきことがあります。今日でもインターネット上のFTPサーバーで使用されているプラットフォーム固有のディレクトリリスト形式は文字通り何百もあります。元のLIST
FTP仕様であるRFC959で概説されているコマンドは、リストに使用されるフォーマットを定義していなかったため、システムは使用したいものを自由に使用でき、何年にもわたってそれを実行していました。WindowsおよびUnix形式が一般的ですが、必須ではありません。正式なリスト形式は、FTPの拡張機能でRFC 3659まで定義されていませんでした。これは、古いコマンドMLSD
を置き換えます(サーバーがサポートしている場合は使用します)。LIST
TIdFTP.List()
MLSD
TIdFTP
Indy 10ではプラグインシステムを使用してこれらのさまざまなリスト形式の多くをサポートしているため、これについて言及します。各フォーマットはIdFTPListParse...
、Indyの個別のユニットに実装されています。デフォルトでは、NLST
とMLSD
フォーマットのみが常に有効になっています。サポートしたい他のリスト形式については、それを認識するために、適切なIdFTPListParse...
単位を句に含める必要があります。たとえば、および。または、使用可能なすべてのパーサーを有効にするユニットがあります。を呼び出すと、プロパティは生のリストデータの解析に使用されたパーサーの名前に設定されます。uses
TIdFTP
IdFTPListParseUnix
IdFTPListParseWindows
IdAllFTPListParsers
TIdFTP.List()
TIdFTP.DirFormat
FTPプロトコルは、RFC959に文書化されています。ファイルを一覧表示するコマンドはLIST
、セクション4.1.3に記載されているように呼び出されます。