MFC-遍历FTP文件目录
时间:2021-09-07
本文章向大家介绍MFC-遍历FTP文件目录,主要包括MFC-遍历FTP文件目录使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
版本
VS2013
MFC项目
源代码
#include <afxinet.h> #include <afxwin.h> void CMFCApplication11Dlg::CycleFtpFile(CString dir) { CString filename; CString server = "192.168.1.100";//IP地址 CString user = "administrator";//用户名 CString pass = "mima123456";//密码 int port = 108;//端口号 CInternetSession session; CFtpConnection *pTemp = session.GetFtpConnection(server, user, pass, port); CFtpFileFind Find(pTemp); BOOL ret; if (dir.IsEmpty()) ret = Find.FindFile(NULL, INTERNET_FLAG_EXISTING_CONNECT);//查找文件 else ret = Find.FindFile(dir, INTERNET_FLAG_EXISTING_CONNECT); if (ret) { while (Find.FindNextFile())//遍历 { filename = Find.GetFileName(); if (Find.IsDirectory())//文件夹 { //写入到Edit控件里 int iLen = m_edit.GetWindowTextLength(); CString strMsg = "文件夹:"; strMsg = strMsg + filename += "\r\n"; m_edit.SetSel(iLen, iLen, TRUE); m_edit.ReplaceSel(strMsg, FALSE); //递归 CycleFtpFile(dir + "\\" + filename); } else//文件 { //写入到Edit控件里 int iLen = m_edit.GetWindowTextLength(); CString strMsg = "文件:"; strMsg = strMsg + filename += "\r\n"; m_edit.SetSel(iLen, iLen, TRUE); m_edit.ReplaceSel(strMsg, FALSE); } } if (!Find.IsDirectory())//文件 { filename = Find.GetFileName(); //写入到Edit控件里 int iLen = m_edit.GetWindowTextLength(); CString strMsg = "文件:"; strMsg = strMsg + filename += "\r\n"; m_edit.SetSel(iLen, iLen, TRUE); m_edit.ReplaceSel(strMsg, FALSE); } else//文件夹 { filename = Find.GetFileName(); //写入到Edit控件里 int iLen = m_edit.GetWindowTextLength(); CString strMsg = "文件夹:"; strMsg = strMsg + filename += "\r\n"; m_edit.SetSel(iLen, iLen, TRUE); m_edit.ReplaceSel(strMsg, FALSE); //递归 CycleFtpFile(dir + "\\" + filename); } } Find.Close(); delete pTemp; } 阿飞 2021年9月7日
演示
阿飞
2021年9月7日
原文地址:https://www.cnblogs.com/nxopen2018/p/15238365.html
- [原创图解]Win2003证书服务配置/客户端(服务端)证书申请/IIS站点SSL设置
- JavaScript之firstChild属性、lastChild属性、nodeValue属性学习
- JavaScript之获取和设置元素属性
- JavaScript之childNodes属性、nodeType属性学习
- JavaScript之怎样获取元素节点
- JavaScript之对象学习
- 快速入门系列--MVC--07与HTML5移动开发的结合
- JavaScript之数组学习
- JavaScript之字符串引号的使用技巧
- 快速入门系列--CLR--03泛型集合
- JavaScript之ClassName属性学习
- 2016台式机攒机
- EF简介
- CSS-DOM介绍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原创 | 你追我,如果你追到我……那就算你赢了
- 原创 | 详解gitignore的使用方法,让你尽情使用git add .
- 第31天:面试比 KMP 还容易被问到的匹配算法!
- 原创 | 深度学习开篇,来聊聊感知机的原理
- 算法题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- 使用Java和Python解题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
- R语言中%||%是什么意思?
- 原创 | 你会用缓存吗?详解LRU缓存淘汰算法
- 用Java实现:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。
- Hacking with iOS: SwiftUI Edition - Hot Prospects项目(一)
- 原创 | 详解command设计模式,解耦操作和回滚
- 第32天:图解大数打印,这道题如此经典!
- Mac终端配置好的环境变量在关闭终端后失效怎么办
- R中的stack和unstack函数
- 第33期:上海自来水来自海上,回文字符串验证!