版本
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日