把以下代码放到Win32控制台运行,亲测可用:
#include <windowsh>
#define FILEILTER "" //查找条件,例如查找exe格式的那么就用exe,当然也可以直接用setupexe
#include "iostreamh"
#include "stdioh"
BOOL IsRoot(LPCTSTR lpszPath)
{
TCHAR szRoot[4];
wsprintf(szRoot, "%c:\\", lpszPath[0]);
return (lstrcmp(szRoot, lpszPath) == 0);
}
void FindInAll(LPCTSTR lpszPath)
{
TCHAR szFind[MAX_PATH];
lstrcpy(szFind, lpszPath);
if (!IsRoot(szFind))
lstrcat(szFind, "\\");
lstrcat(szFind, FILEILTER); // 找所有文件
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(szFind, &wfd);
if (hFind == INVALID_HANDLE_VALUE) // 如果没有找到或查找失败
return;
do
{
if (wfdcFileName[0] == '')
continue; // 过滤这两个目录
if (wfddwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
wsprintf(szFile, "%s%s", lpszPath, wfdcFileName);
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfdcFileName);
FindInAll(szFile); // 如果找到的是目录,则进入此目录进行递归
}
}
else
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
{
wsprintf(szFile, "%s%s", lpszPath, wfdcFileName);
}
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfdcFileName);
printf("%s\n",szFile);
}
// 对文件进行 *** 作
}
} while (FindNextFile(hFind, &wfd));
FindClose(hFind); // 关闭查找句柄
}
int main(int argc, char argv[])
{
FindInAll("E:"); //这里设置目录为E:,请根据需要更改
return 0;
}
代码仅供参考:
定义两个字符串变量,并且声明获取计算机名称和IP的函数GetLocalHostIPName(CString &sLocalName, CString &sIpAddress)。
CString m_strLocalIP; //本机计算机IPCString m_strLocalName; //本机计算机名
int GetLocalHostIPName(CString &sLocalName, CString &sIpAddress); //获取本机名称IP
定义函数GetHostName(CString &sLocalName, CString &sAddress)。
char name[128];gethostname(name, 128);//获得主机名
以上就是关于MFC中遍历当前目录下的文件和文件夹,然后将所有找到的文件夹的名字提取出来全部的内容,包括:MFC中遍历当前目录下的文件和文件夹,然后将所有找到的文件夹的名字提取出来、MFC如何获取自己电脑的IP地址和主机名、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)