`

TIdFTP.List和返回值容器

阅读更多

http://blog.sina.com.cn/s/blog_4c0aa7ef01000921.html

 

List和结果容器

List(ADest: TStrings; const ASpecifier: string = ''; const ADetails: boolean = true);

描述:用于获得FTP服务器当前目录下的文件或目录列表。ADest是存贮FTP服务器目录列表返回的原始文本值的TStringList参数。ASpecifier是容纳列表中文件和/或目录掩盖符的String,可包含通配符。其中有些:

l    *.* 所有文件

l    * 所有目录条目

l    *. 忽略扩展名的所有文件

l    A??.txt以A开头的3字符名字的文本文档

ADetail是布尔值,表示list是否包含ASpecifier中掩码匹配的文件或目录的细节。False,使用FTP的NLST命令返回的文件或目 录名,True,List返回依FTP服务器不同的细节,包括文件大小,被修改的数据,对用户、组的文件许可,使用FTP的List命令。

List将初始化、清空DirectoryListing属性,将 ADest中的返回值解析到DirectoryListing容器的collection items中。当ADest为空,格式化的DirectoryListing为空。List将 FTP服务器的返回值存储在ListResult中,并且允许用List命令,独立使用或者准备构造DirectoryListing。

List调用DirectoryListing中的命令,检查FTP服务器返回的普通数据格式。应用程序可以不考虑默认检查,和通过在OnCheckListFormat and OnParseCustomListFormat事件句柄中添加程序实现的解析行为。

ListResult

只读TStrings属性,用于存储List函数的返回值。也可在当试图为DirectoryListin中创建的items决定列表格式时使用。ListResult在Create构造函数中初始化,在Destoy函数中释放。

DirectoryListing

property DirectoryListing: TIdFTPListItems ;

只读TIdFTPList属性,代表TIdFTPListItem实例(List和Status函数返回值)的容器和解析器。DiractoryListing总是在List和Status添加返回值之前被清空。

DiractoryListing提供一个结构化的方式,来访问FTP List,NLST,STAT命令返回的文件、目录的数据。DiractoryListing也可以用于装载显示FTP操作结果的GUI控制,如TTreeView。

DiractoryListing可以和OnParseCustumListFormat事件配合,来解析TIdFTPList不常规支持的FTP List格式。

DiractoryListing在使用List、或OnCreateFTPList事件句柄前初始化。DiractoryListing使用Destroy释放。

TIdFTPListItems

封装FTP目录列表的collection。

TIdFTPListItems = class (TCollection)

TIdFTPListItems.DirectoryName

公共字符串属性,表示collection中条目表示的文件系统目录的名字。使用Items访问目录列表的条目。修改DirectoryName将清空条目。

TIdFTPListItems.Items

TIdFTPItem通常由TIdFTP.LoadList函数创建。

TIdFTPListItems.ListFormat

是TIdFTPListFormat属性,在TIdFTP.LoadList解析中使用的目录格式。ListFormat用在Parse函数,决定适合 collection中目录条目的解析机制。通常容纳TIdFTP.CheckListFormat函数的返回值。默认值为福利房Unix,在 Create构造函数中被指派。

TIdFTPListItems函数

 Add

 CheckListFormat :CheckListFormat<->ListFormat(TIdFTPListFormat)

 Create

 IndexOf

 LoadList :  ListFormat下TStrings->TIdFTPItem,包括创建TIdFTPItem,还有调用Parse

 Parse :procedure Parse(ListFormat: TIdFTPListFormat; AItem: TIdFTPListItem); ListFormat下解析的数据在放在AItem.Data中。

 ParseCustom :激活事件OnParseCustomListFormat。该事件提供常规解析代码。当开发者需要支持非常规目录列表格式时用到它。若没有该事件,抛出异常EIdInvalidFTPListing

Format。

 ParseUnknown:抛出异常EIdInvalidFTPListingFormat。ListFormat为flfUnknown时,该函数被调用。

TIdFTPListItems

 OnGetCustomListFormat

 OnParseCustomListFormat

TIdFTPListItem

一个目录条目实现。TIdFTPListItem = class (TCollectionItem)

FTP服务器LIST,NLST,STAT命令的返回数据的普通表示。注意:FTP协议没有指定这种数据类型的标准表示。它实现大多数FTP服务器中建立 的普通参数。也提供用作目录条目基础的原始文本数据,和TIdFTPListItems容器的解析函数配合,跨越默认的解析行为。

 

TIdFTPListItem

 Data

 FileName

 GroupName

 GroupPermissions

 ItemCount

 ItemType

 LinkedItemName

 ModifiedDate

 OwnerName

 OwnerPermissions

 Size

 UserPermissions

TIdFTPListItem

 Assign

 Create

 Text

分享到:
评论

相关推荐

    Delphi.example.code.TIdFTP.File.Upload.rar_*TidFTP*_delphi examp

    Delphi基于TIdFTP文件上传实例代码Delphi example code based on TIdFTP File Upload

    FTP.rar_Indy_delphi ftp client_delphi indy f_ftp delphi_indy ftp

    3. **列出目录内容**:调用`TIdFTP.List`方法,返回一个包含远程目录信息的字符串列表。可以遍历该列表获取文件或子目录的信息。例如: ```delphi IdFTP1.Connect; try ListItems := IdFTP1.List; for Item in ...

    Delphi FTP实例

    - **列出目录**:`TIdFTP.List`或`TIdFTP.Mlsd`方法可以获取远程目录的文件列表。 - **创建/删除目录**:`TIdFTP.Mkdir`用于创建新目录,`Rmdir`用于删除目录。 - **重命名文件**:`Rename`方法用于重命名远程文件。...

    FTP文件传输客户端程序

    4. 操作文件:可以使用`TIdFTP.Get`、`TIdFTP.Put`、`TIdFTP.List`等方法来上传、下载或查看远程服务器的文件列表。 5. 断开连接:完成操作后,调用`TIdFTP.Disconnect`断开连接。 VCL Skin 2.6 for D7则使得这个...

    Delphi Ftp上传程序

    - 上传文件:使用`TIdFTP.Put`或`TIdFTP.Upload`,传入本地文件路径和远程文件名。 - 断开连接:使用`TIdFTP.Quit`。 5. **错误处理**:在编写FTP上传程序时,必须考虑错误处理。例如,连接失败、认证失败、文件...

    Delphi使用TIdFtp控件实现FTP协议

    TIdFtp 控件可以实现 FTP 协议的上传和下载功能,並提供了丰富的事件响应机制来控制传输过程。 使用 TIdFtp 控件实现 FTP 协议的优点很多。首先,它可以高效稳定地完成大文件的上传和下载。其次,它可以完美地实现...

    TIdFTP实现文件上传1.rar_TIdFTP1_c 文件转发_ftp_tidftp_文件上传

    TIdFTP是 Indy 框架的一部分,它是一个强大的组件库,为 Delphi 和 C++Builder 开发者提供了实现各种网络协议的能力,包括 FTP。在这个场景下,我们关注的是如何使用 TIdFTP 组件来实现文件上传功能。 标题中的...

    Delphi基于TIdFTP的简单文件上传实例

    2. **创建TIdFTP组件**:在界面上或代码中添加一个TIdFTP组件,设置其属性,如Host(FTP服务器地址)、Port(默认21)、Username和Password(用于身份验证)。 3. **连接到FTP服务器**:调用TIdFTP的Connect方法与...

    Delphi使用TIdFtp控件实现FTP协议.doc

    ### Delphi 使用 TIdFtp...对于想要深入了解 TIdFtp 控件及其高级用法的开发者,可以参考 Indy 组件包的官方文档,获取更多关于 TIdFtp 的详细信息和最佳实践案例。此外,社区论坛和相关技术博客也是寻找解答的好地方。

    ftp.zip_ftp_tidftp

    TIdFTP是 Indy 库的一部分,这是一个跨平台的网络组件套件,适用于C++ Builder 和其他 Delphi 开发环境。Indy 提供了易于使用的接口,允许开发者轻松地实现 FTP 功能,如连接、登录、上传、下载以及列举服务器上的...

    TIdFTP 测试程序

    总的来说,"TIdFTP 测试程序"是一个实用的学习和开发工具,它为开发者提供了一个实践和调试FTP连接代码的平台,而Indy库和SERV-U的结合则展示了FTP服务和客户端之间的完整交互过程。无论是对于初学者还是有经验的...

    Delphi客户端通过FTP服务器上传或下载文件或图片方法

    FTP := TIdFTP.Create(Self); FTP.Host := 'ftp.example.com'; FTP.Username := 'your_username'; FTP.Password := 'your_password'; ``` 进行上传操作时,我们可以使用TIdFTP组件的`Put`方法。假设我们有一个名为`...

    用TIdFTP实现文件上传

    TIdFTP是 Indy(Internet Direct)库的一部分,它是一个广泛用于Delphi和C++Builder等开发环境的开源网络通信组件集合。Indy 提供了多种协议的支持,包括FTP,SMTP,HTTP等,使得开发者能够方便地在应用中实现网络...

    Delphi_组件实现FTP上传

    FTP := TIdFTP.Create(nil); try FTP.Host := 'ftp.example.com'; FTP.Username := 'username'; FTP.Password := 'password'; FTP.Connect; FTP.Put('C:\localfile.txt', 'remotefile.txt'); finally FTP....

    基于TIdFTP的Delphi文件上传实例.rar

    基于TIdFTP的Delphi文件上传实例,只写了一个上传,是因为一个朋友只要上传功能,下载就没有写,把源码贴出来供大家学习,当时着急没写几行注释,连错误处理也少得可怜,见谅. 可以上传整个目录,单线程。作者QQ:5659170 ...

    ftp.rar_delphi ftp_ftp_tidftp

    要连接到FTP服务器,需要设置TIdFTP的Host属性为服务器地址,Port属性为服务器端口(默认为21),并可以使用Username和Password属性进行身份验证。然后调用Connect方法建立连接。 2. **登录操作**: 可以通过调用...

    基于 indy 的FTP客户端的例子

    4. **文件下载**:使用 `TIdFTP.Get` 方法从服务器下载文件,同样要考虑文件大小和传输模式。 5. **文件重命名与删除**:在服务器上更改文件名或删除文件。 6. **进度显示**:通过事件回调或者额外的线程来监控文件...

    Delphi基于Indy Ics的简单文件上传实例

    这里我们关注的主要方法是`TIdFTP.Put`。这个方法接受一个本地文件路径作为参数,然后将其上传到FTP服务器指定的目录。对于大文件,`TIdFTP`和`TIdSslFTP`组件通常会自动处理分块传输,确保大文件能正确上传。 以下...

    ftp.zip_delphi ftp_ftp

    除了基本的上传和下载,TIdFTP组件还提供了丰富的功能,比如列出远程目录(`FTPClient.List`),创建或删除远程目录(`FTPClient.MkDir`,`FTPClient.RmDir`),以及更改当前工作目录(`FTPClient.ChangeDir`)等。...

    FTP Delphi

    FTP := TIdFTP.Create(nil); FTP.Host := 'ftp.example.com'; FTP.Username := 'username'; FTP.Password := 'password'; FTP.Connect; ``` 上传文件: ```delphi FTP passive := True; // 使用被动模式,避免防火墙...

Global site tag (gtag.js) - Google Analytics