c语言findnext递归扫描文件,C++用FindFirstFile、FindNext递归遍历硬盘的文件-Go语言中文社区...
关于 WIN32_FIND_DATA 的数据结构
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes; //文件属性
FILETIME ftCreationTime; // 文件创建时间
FILETIME ftLastAccessTime; // 文件最后一次访问时间
FILETIME ftLastWriteTime; // 文件最后一次修改时间
DWORD nFileSizeHigh; // 文件长度高32位
DWORD nFileSizeLow; // 文件长度低32位
DWORD dwReserved0; // 系统保留
DWORD dwReserved1; // 系统保留
TCHAR cFileName[ MAX_PATH ]; // 长文件名
TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;
#include
#include
#include
using namespace std;
class SearchFile
{
private:
vector result;
public:
vector getResult()
{
auto t = result;
result.clear();
return t;
}
bool search(char *path="C:\",char *file="exe")
{
HANDLE hFile;
char buffer[MAX_PATH]={0,};
WIN32_FIND_DATA pNextInfo; //搜索得到的文件信息将储存在pNextInfo中;
sprintf(buffer,"%s\*.*",path);
hFile = FindFirstFile(buffer,&pNextInfo);//请注意是 &pNextInfo , 不是 pNextInfo;
if(!hFile){
return false;
}
string t;
//cout << buffer << endl;
while(FindNextFile(hFile,&pNextInfo))
{
if(pNextInfo.cFileName[0] == '.')//过滤.和..
continue;
//cout << pNextInfo.cFileName << endl;
if(pNextInfo.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
ZeroMemory(buffer,MAX_PATH);
sprintf(buffer,"%s\%s",path,pNextInfo.cFileName);
//cout << buffer << endl;
search(buffer,file);
}
t.assign(path);
t+='\';
t.append(pNextInfo.cFileName);
int len = strlen(file);
if(t.substr(t.size()-len)==file)
{
result.push_back(t);//对t对象进行深复制
}
}
return true;
}
};
int main() {
SearchFile s;
//设计了一个SearchFile类来搜索文件,调用search成员函数后,再调用getResult()返回查到的结果,如果搜索失败,getResult()返回NULL
s.search("C:\Users\lxw\OneDrive\python35","py");
auto result = s.getResult();
for(int i=0;i
{
cout << result[i] << endl;
}
return 0;
}
这里的IDE用的是CLion;
c语言findnext递归扫描文件,C++用FindFirstFile、FindNext递归遍历硬盘的文件-Go语言中文社区...相关推荐
- C++用FindFirstFile、FindNext递归遍历硬盘的文件
关于 WIN32_FIND_DATA 的数据结构 typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; //文件属性 FILETIME f ...
- php遍历目录与文件夹,介绍几种php遍历目录与文件夹的方法
介绍几个php遍历目录的方法,可以遍历目录及目录中的文件,供大家参考 遍历目录或遍历目录下指定类型的文件,这是每一个童鞋在写程序的时候难免会用到的.PHP本身也提供了很多灰常有用的函数,正确地使用它们 ...
- C#递归扫描文件夹中的文件
为什么80%的码农都做不了架构师?>>> 本例是递归扫描文件夹中文件,并将文件夹的文件信息,全部显示到listview控件中,一下是源代码 /// <summary> ...
- java 递归扫描文件夹_java扫描文件夹下面的所有文件(递归与非递归实现)
java中扫描指定文件夹下面的所有文件 扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种方式来遍历指定文件夹下面的所有文件. 递归方式 非递归方式(采用队列或 ...
- c语言 遍历文件夹中所有文件名,C# 遍历文件夹下所有子文件夹中的文件,得到文件名...
假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中 using System.Data; using System.Drawing; using System.Linq; using ...
- 【C语言攻略】详解函数和函数递归
本章目录 编程环境 函数是什么? 函数分类 库函数 strlen函数 strcpy函数 memset函数 自定义函数 函数的形参与实参 函数的嵌套调用和链式访问 函数的声明与定义 函数递归 编程环境 ...
- windows和linux添加引导文件,Linux与Windows 10用grub引导教程-Go语言中文社区
前言 去年暑假的时候,写了一篇如何装 Linux 和 Windows 10 双系统的文章发在了简书上,我写这篇文章的原因是当初装双系统确实是折腾了许久,网上也找不到一篇详尽的教程.由于去年对于写教程还 ...
- postgresql 遍历参数_《go语言从入门到入坟》json操作、文件操作
json操作 JSON (JavaScript Object Notation)是一种比XML更轻量级的数据交换格式,不仅易于阅读和理解,也更方面程序解析和生成.尽管json是JavaScript的一 ...
- C/C++编程学习 - 第1周 ⑦ 头文件、强制类型转换、递归
文章目录 头文件 引用头文件的语法 引用头文件的操作 只引用一次头文件 有条件引用 强制类型转换 整数提升 常用的算术转换 递归 数的阶乘 斐波那契数列 本周其他文章: 头文件 头文件包含了 C 函数 ...
最新文章
- mysql 常用操作
- c语言坐标扫雷程序,用C语言写一个扫雷程序
- gcc / -L 和 -Wl,-rpath 区别
- 简单的01背包和完全背包
- DirectX支配游戏!历代GPU架构全解析
- python json文件传输图片
- python的浮点数占字节_Python二进制文件读取并转换为浮点数详解
- 服务器密码已修改是什么意思,服务器密码已更改请输入新密码
- C语言lrc校验算法详解,C语言解析lrc文件
- IDM下载哔哩哔哩视频MP4格式
- 一场安防IPC模组方案发布会引发的吐槽风波与反思
- 单片机看门狗是什么?工作原理?使用方法?
- 第006话 皮皮和月亮石!
- 算法:最长公共子序列(输出所有最长公共子序列)
- 如何批量在文件夹中建立php,怎样快速实现批量建立文件夹 电脑一次性快速批量新建多个文件夹的方法...
- 牛客网sql练习题解(22-32)
- 转载:latex中.bb not found问题
- JavaScript脚本延迟加载的方式有哪些?
- Java变量和运算符详解
- stm32CubeMX的安装和点亮流水灯