遍历FTP服务器上的文件并显示到树控件(CTreeCtrl)中

直接上代码:

void CFtpUpLoadDlg::RefreshTree()
{
	CString server;
	GetDlgItemText(IDC_EDIP,server);
	m_TreeInfo.DeleteAllItems();
	hRoot =  m_TreeInfo.InsertItem(server,0,0);//根节点为FTP服务器ip
	ListDir("",hRoot);
}

void CFtpUpLoadDlg::ListDir(CString dir, HTREEITEM hParent)
{
	CString filename ;
	CInternetSession session;
	CFtpConnection* pTemp  =  session.GetFtpConnection(strip,strusr,strpwd,atoi(strport));
	CFtpFileFind Find(pTemp);

	HTREEITEM hItem = hParent;
	HTREEITEM hSubItem;

	BOOL ret ;
	ret = Find.FindFile(dir,INTERNET_FLAG_EXISTING_CONNECT);

	while (ret)
	{
		ret = Find.FindNextFile();
		if (Find.IsDots())// 遍历到.或是..
		{
			continue;
		}else if (Find.IsDirectory())
		{
			filename = Find.GetFileName();
			hSubItem = m_TreeInfo.InsertItem(filename,0,0, hParent);//将遍历到的文件夹加入到树控件
			
			ListDir(dir+"\\"+filename,hSubItem);	
		}else{
			filename = Find.GetFileName();
			hSubItem = m_TreeInfo.InsertItem(filename,0,0, hParent);//将遍历到的文件加入到树控件
		}
	}
	Find.Close();
	delete pTemp;
}


结果如图:

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/file — FTP 服务器的名称和特定对象的路径。如果找到了该对象则选择它;如果未提供该对象,将尽可能地扩展。 可以将协议前缀 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小米的修行之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值