当前位置:首页 » 文件管理 » 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#

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:716
制作脚本网站 发布:2025-10-20 08:17:34 浏览:982
python中的init方法 发布:2025-10-20 08:17:33 浏览:690
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:844
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:749
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1089
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:318
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:195
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:886
python股票数据获取 发布:2025-10-20 07:39:44 浏览:845