Sha*_*eri 0 delphi ftp indy delphi-2010 indy10
我希望列出FTP服务器中的所有文件以进行索引(主目录和子目录).
如何获取服务器中可访问文件的完整列表?
Indy有一个TIdFTP组件,它有一个List()方法和一个DirectoryListing属性.调用List()然后DirectoryListing根据需要循环遍历结果.DirectoryListing将在每个项目中告诉您它是文件还是子文件夹.如果需要索引整个系统,则必须List()为每个子文件夹调用一个递归循环.
要记住的事情 - 今天互联网上的FTP服务器仍然使用了数百种特定于平台的目录列表格式.LIST原始FTP规范RFC 959中概述的命令没有定义用于列表的任何格式,因此系统可以自由使用他们想要使用的任何内容,并且他们确实这样做了多年.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属性将设置为用于解析原始列表数据的解析器的名称.
| 归档时间: |
|
| 查看次数: |
8707 次 |
| 最近记录: |