关于CFtpFileFind 的FindFile问题

yzx110 2003-08-02 07:03:41
每次用CFtpFileFind 中方法查找Ftp上的文件之后要用调用Close方法使下一次查找有效,我甚至在创建CFtpFileFind对象之后FindFile 之前也调用了一次Close

但是问题还是无法解决,每次我下在一个文件(含有多层目录)的时候,第一层的所有文件可以准确用FindFile找到,可是到了第二层目录,FindFile却永远只返回
FALSE,其间我也用了Close方法,但问题还是依旧,永远只能下载一层目录下的文件,按道理因该可以下在很多层啊,可是我不知道怎么解决这个问题????????


盼答!!!!!!!!!
...全文
411 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzx110 2003-08-04
  • 打赏
  • 举报
回复
我就是前面用了一次没关,而在后面创建CFtpFileFind对象后再用Close关掉前面的那个,有没有用??
yzx110 2003-08-03
  • 打赏
  • 举报
回复
你的方法不错,我试过,成功了。
不过有点不明白的是,如果我前面一个CFtpFileFind没有Close的话,我再次创建一个CFtpFileFild 后马上Close,这样一点效果都没有吗??
sccwee 2003-08-03
  • 打赏
  • 举报
回复
一般查找多层目录要用到函数递归调用,但是对于一个CFtpConnection同时只能有CFtpFileFind起作用,当你想再用 CFtpFileFind时应先将前一个CFtpFileFind close。

你可以将用CFtpFileFind查找到的一层目录保存在列表中,然后将次CFtpFileFind close,再通过保存在列表一层目录查找下一层目录。

你可以到网上找些CFtpFileFind的源代码看看,你就会明白的。
yzx110 2003-08-03
  • 打赏
  • 举报
回复
怎么没人回答啊,
up!!!!!!!!
sccwee 2003-08-03
  • 打赏
  • 举报
回复
我没太听明白。
一般是用CFtpFileFind时,将前面的先关了.
FTPTREE 示例阐释下面的 MFC Internet 客户端 (WinInet) 功能: 使用 CInternetSession 和 CFtpConnection 类以最少数量的自定义代码获得 Internet 或 Intranet 连接。 将 CFtpFileFind 类与 CFtpConnection 一起使用以定位 FTP 站点的目录结构。 动态生成树控件的内容。 生成并运行示例 生成并运行 FTPTREE 示例 打开解决方案 Ftptree.sln。 在“生成”菜单上单击“生成”。 打开并运行 FTPTREE 应用程序。 FTPTREE 是示例对话框应用程序,它具有一个编辑框(用于服务器名称和该服务器上对象的路径(可选))和一个标准树控件对象。树控件属于此对话框,并且显示错误信息或在 ftp:// 编辑框中指定的 FTP 站点的内容(最多 128 项)。 CInternetSession 对象封装与 Internet(或 Intranet)的连接。当 FTPTREE 对话框存在于内存中时该对象将保持封装,但它可以只在需要时用很少的系统开销很容易地打开(并在之后立即关闭)。 FTPTREE 基于在注册表中指定的配置打开 Internet 会话。以下为 ftp:// 编辑框的有效输入。 myserver — 仅为 Intranet FTP 服务器的名称。 www.myserver.tld — 仅为 Internet FTP 服务器的名称。 myserver/dir/ — FTP 服务器和路径的名称。该路径将在树控件中扩展。 myserver/dir/fileFTP 服务器的名称和特定对象的路径。如果找到了该对象则选择它;如果未提供该对象,将尽可能地扩展树。 可以将协议前缀 ftp:// 添加到上述任何项中。 可能需要 TIS 代理来用于连接 FTPTREE 示例(通常情况下,包括 Wininet.dll)要求与 FTP 服务器直接连接或通过 TIS 代理与 FTP 服务器连接。FTPTREE、CFtpConnection 和直接 WININET API 调用将不与 CERN FTP 代理正确工作。 FTPTREE 示例使用在注册表中指定的代理信息。如果获得诸如“与服务器的连接被重置”之类的消息,这些消息表明 FTPTREE 无法与 Internet 站点连接,您可能需要更改您预配置的注册表设置来为 FTP 服务指定 TIS 代理。可以在 Internet Explorer 中的“选项”属性表的“连接”选项卡上更改这些设置。相应的注册表项是: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "ProxyEnable" "ProxyServer" "ProxyOverride" 关键字 此示例说明以下关键字: CFtpConnection::CFtpConnection;CFtpConnection::SetCurrentDirectory;CFtpConnection::GetCurrentDirectory;CFtpConnection::Close;CFtpFileFind::CFtpFileFind;CFtpFileFind::FindFile;CFtpFileFind::FindNextFile;CFileFind::IsDirectory;CInternetSession::CInternetSession;CInternetSession::GetFtpConnection;CInternetSession::Close;

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧