当前位置:首页 » 文件管理 » c递归遍历文件夹

c递归遍历文件夹

发布时间: 2025-09-25 16:04:16

‘壹’ MFC中遍历当前目录下的文件和文件夹,然后将所有找到的文件夹的名字提取出来

把以下代码放到Win32控制台运行,亲测可用:

#include <windows.h>
#define FILEILTER "*.*" //查找条件,例如查找.exe格式的那么就用*.exe,当然也可以直接用setup.exe
#include "iostream.h"
#include "stdio.h"

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 (wfd.cFileName[0] == '.')
continue; // 过滤这两个目录
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
FindInAll(szFile); // 如果找到的是目录,则进入此目录进行递归
}
}
else
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
{
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
}
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
printf("%s\n",szFile);
}
// 对文件进行操作
}
} while (FindNextFile(hFind, &wfd));
FindClose(hFind); // 关闭查找句柄

}
int main(int argc, char* argv[])
{
FindInAll("E:"); //这里设置目录为E:,请根据需要更改
return 0;
}

‘贰’ C# 遍历文件夹下所有子文件夹中的文件,得到文件名

输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:

/// <summary>

/// 查找指定文件夹下指定后缀名的文件

/// </summary>

/// <param name="directory">文件夹</param>

/// <param name="pattern">后缀名</param>

/// <returns>文件路径</returns>

public void GetFiles(DirectoryInfo directory, string pattern, ref List<string> fileList)

foreach (FileInfo info in directory.GetFiles(pattern))

catch (System.Exception ex)

foreach (DirectoryInfo info in directory.GetDirectories())//获取文件夹下的子文件夹

语言结构

类:一个基本的C#类中包含数据成员、属性、构造器和方法。属性可以是静态或实例成员。在C#中类的声明与C++和Java很相似。但是,不像C++,C#结构体与类是不支持继承多个父类。但是,与Java相同的是,一个结构体可以实现接口(interface)。Java的关键字import已经被替换成using,它起到了同样的作用。

以上内容参考:网络-c#

热点内容
安卓压缩包图片怎么保存到手机 发布:2025-09-25 18:52:17 浏览:924
怎么看到自己的wifi密码 发布:2025-09-25 18:49:50 浏览:487
安卓手机哪个软件下载单机多 发布:2025-09-25 18:36:45 浏览:475
解压的动画 发布:2025-09-25 18:30:10 浏览:856
小米手机无法连接服务器是什么原因 发布:2025-09-25 18:14:30 浏览:414
linuxgsm 发布:2025-09-25 18:10:06 浏览:595
xp不能访问ip 发布:2025-09-25 17:41:45 浏览:530
c语言n的阶乘函数 发布:2025-09-25 17:40:56 浏览:292
人机对话编程 发布:2025-09-25 16:46:33 浏览:190
枪林弹雨脚本 发布:2025-09-25 16:44:51 浏览:933