C++遍历文件夹

C、 C++遍历文件夹,删除文件夹 1,使用SHFileOperation删除文件夹, 阅读详情
01//written by baoer1024 on 2012-3-22
02#ifndef _FILE_H_
03#define _FILE_H_
04 
05#include <vector>
06#include <string>
07#include <time.h>
08#include <sys/stat.h>
09using namespace std;
10 
11const int MAX_DUR = 5*60;  //时间阈值
12 
13class File
14{
15public:
16    //获取路径下的所有文件夹
17    vector<string> GetFolders(const string &path);
18     
19    //获取路径下的所有文件,可指定文件后缀名
20    vector<string> GetFiles(const string &path, const string &postfix="");
21     
22    //检查文件或目录是否准备好,一定程度上防止数据正在拷贝的时候去读写。
23    //方法是检查文件或目录的access time是否在5分钟以前
24    bool IsPrepared(const string &path);
25     
26    //判断是否为文件夹
27    bool IsFolder(const string &path);
28     
29    //判断是否为文件
30    bool IsFile(const string &path);
31};
32 
33#endif

2. [代码]File.cpp    跳至 [1] [2] [全屏预览]

01//written by baoer1024 on 2012-3-22
02#include "File.h"
03#include <string.h>
04#include <stdio.h>
05#include <stdlib.h>
06#include <dirent.h>
07 
08//获取路径下的所有文件夹
09vector<string> File::GetFolders(const string &path)
10{
11   vector<string> folders;
12   struct dirent* ent = NULL;
13   DIR* pDir;
14   pDir = opendir(path.c_str());
15   while(NULL != (ent = readdir(pDir)))
16   {
17      string fullpath = path + "/" + ent->d_name;
18      //if(4 == ent->d_type)  //在nfs或xfs下,有的目录d_type也是0
19      if(IsFolder(fullpath))
20      {
21         if(strcmp(ent->d_name, ".")!=0 && strcmp(ent->d_name, "..")!=0)
22         {
23            folders.push_back(ent->d_name);
24         }
25      }
26   }
27   closedir(pDir);
28   return folders;
29}
30 
31//获取路径下的所有文件,可指定文件后缀名
32vector<string> File::GetFiles(const string &path, const string &postfix)
33{
34   vector<string> files;
35   struct dirent* ent = NULL;
36   DIR* pDir;
37   pDir = opendir(path.c_str());
38   while(NULL != (ent = readdir(pDir)))
39   {
40      string fullpath = path + "/" + ent->d_name;
41      //if(8 == ent->d_type)  //在nfs或xfs下,有的文件d_type也是0
42      if(IsFile(fullpath))
43      {
44         if(postfix == "" || strstr(ent->d_name, postfix.c_str())!=NULL)
45         {
46            files.push_back(ent->d_name);
47         }
48      }
49   }
50   closedir(pDir);
51   return files;
52}
53 
54//检查文件或目录是否准备好,一定程度上防止数据正在拷贝的时候去读写。
55//方法是检查文件或目录的access time是否在5分钟以前
56bool File::IsPrepared(const string &path)
57{
58    struct stat st;
59    stat(path.c_str(), &st);
60    return time(0)-st.st_ctime >= MAX_DUR;
61}
62 
63//判断是否为文件夹,用stat的标志来判断
64bool File::IsFolder(const string &path)
65{
66   struct stat st;
67   int ret = stat(path.c_str(), &st);
68   return ret>=0 && S_ISDIR(st.st_mode);
69}
70 
71//判断是否为文件,用stat的标志来判断
72bool File::IsFile(const string &path)
73{
74   struct stat st;
75   int ret = stat(path.c_str(), &st);
76   return ret>=0 && S_ISREG(st.st_mode);
77}
C/C++ 如何遍历目录下的所有文件夹 这篇文章参考了:http://sodino.com/2015/03/09/c-directory-io/#d_scan C/C++中如何打开目录: DIR *opendir(const char *name);opendir()函数打开一个指定路径name的文件夹关联的流,并将该流以执行结果的方式返回给调用者。在默认情况下,该流指向文件夹下的第一个目录。 读取文件夹中的内容: 阅读详情

相关推荐

C++遍历文件夹下的所有文件

C++遍历文件夹下的所有文件

sylvester的博客 5637

C/C++ 遍历文件夹(最全方法)

主要讲解在C/C++程序中,最常见的遍历文件夹的三种方法,filesystem io.h 以及 win api 中的findfirstfile等等函数使用

余识- 1万+

C++遍历文件夹下所有文件

早上吃饭时同学问我怎么读若干个文件,我说

KujoJyotaro的专栏 1392

C++递归遍历文件夹内的所有文件夹与文件的详细实现,基于VC++环境,使用Windows API(FindFirstFile和FindNextFile)递归遍历指定文件夹内的所有子文件夹和文件

C++递归遍历文件夹内的所有文件夹与文件的详细实现,基于VC++环境,使用Windows API(FindFirstFile和FindNextFile)递归遍历指定文件夹内的所有子文件夹和文件。本文提供完整源码、功能介绍、实现细节、示例用法、注意事项以及扩展建议,适用于Windows平台的C++开发。结合您之前提到的VC++开发背景(如分层窗口、UAC等),代码注重健壮性、错误处理和调试支持。本篇提供了VC++递归遍历文件夹的完整源码,基于Windows API实现,包含错误处理、日志记录和扩展性设计。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 1096

c++语言循环读写文件夹,C++遍历文件夹下所有文件的多种方法

为数不多的好用的代码,遍历文件夹获取所有子文件名,"filespec"可用通配符“*?”。注意如果用相对路径的话,获取所有文件名后应再调用SetInitDir将初始目录改为当前目录,否则中间生成的文件都会放在之前的“InitDir”内。C/C++遍历文件夹感觉真是很不好用,建议还是使用C/C++做单任务处理,然后通过脚本语言实现遍历比较合理。CBrowseDir.h#include #includ...

weixin_31968831的博客 3534

删除结点

对给定的单链表 L ,设计一个算法,删除 L 中值为 x 的结点的直接前驱结点。 1 由键盘输入值,换行表示输入结束,根据输入建立单链表。 2 输入链表中的一个元素值,从链表中删除这个元素的前驱结点。 3 对删除元素后的链表元素在屏幕上显示。 测试用例1 11 22 33 44 55 66 77↵ 44↵ 期待输出1 11 22 44 55 66 77↵ #include <iostre...

SChenlyx 1616

vc++遍历文件

应包含的头文件: #include 1. 遍历文件夹下的文件(不包括子文件夹)例如查找全部jpg图片,fileName为 [folderPath]\\*.jpg int fileCount=0; _finddata_t fileInfo; long handle = _findfirst(fileName, &fileInfo); if (handle

readzw的专栏 4240

Mediapipe手势识别实战——基于关节角度计算实现动态手势分类

本文详细介绍了如何利用Mediapipe进行手势识别,通过计算手指关节弯曲角度实现动态手势分类。文章从基础原理出发,讲解了关节角度计算的数学方法,并提供了Python实现代码。同时,还分享了数字手势和OK手势的识别实战经验,以及性能优化和工程实践中的关键技巧,帮助开发者快速掌握实时手势识别技术。

weixin_26891599的博客 403

VC++遍历指定目录下的所有文件

CFileFind fileFind; int i = 0; CString strdir = m_strDirPath + _T("\\*.*"); if(fileFind.FindFile(strdir,0)) { BOOL bRet = TRUE; while(bRet) { bRet = fileFind.FindNextFile();

6210

OneNET物模型实战:如何用NB-IOT模块上传JSON数据并解析

本文详细介绍了如何利用NB-IOT模块将传感器数据上传至中国移动OneNET物联网平台,并利用其物模型功能实现JSON数据的自动解析。文章从理解OneNET物模型与OneJson协议入手,逐步讲解了平台侧物模型创建、设备注册,以及设备端数据构造、HEX编码与NB-IOT模块AT指令上报的全流程,并提供了关键的调试技巧与常见问题排查方法,为物联网开发者提供了完整的实战指南。

sugar的博客 680

AC7811无感FOC实战:从开环到闭环的电机控制调试全记录

本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。

kotlin6android的博客 713

C++ 遍历文件夹下所有文件的多种方法

这篇文章主要介绍了 C++ 遍历文件夹下所有文件的多种方法,需要的朋友可以参考下 文章目录C++ 遍历文件夹下所有文件的多种方法一、实现方法一二、实现方法二三、实现方法三四、实现方法四 C++ 遍历文件夹下所有文件的多种方法 一、实现方法一 为数不多的好用的代码,遍历文件夹获取所有子文件名,“filespec” 可用通配符 “*?”。注意如果用相对路径的话,获取所有文件名后应再调用 SetInitDir 将初始目录改为当前目录,否则中间生成的文件都会放在之前的 “InitDir” 内。 C/C++ 遍历文

qq_43612802的博客 2万+

Vue+Echarts监控大屏实例四:智慧农业监控模板实例

本实例通过Vue-Echarts实现了智慧农业监控模板实例界面,学习并使用了vue-echarts的使用,接入高德地图并展示,添加了全屏切换、加载动画小鼓、站点切换及退出等相关功能,提供源码下载。

Java、前端、小程序学习笔记、问题汇总、项目实例分享,有需要请联系。 7667

C++ 非递归遍历文件夹

【代码】C++ 非递归遍历文件夹。

JTB_xia的博客 238

3.38 工业缺陷检测实战:物体表面缺陷检测,从图像处理到深度学习

本文介绍了工业缺陷检测的完整流程,从传统图像处理到深度学习方法。首先定义了缺陷检测任务的目标和应用场景,然后详细讲解了传统图像处理方法(边缘检测、阈值分割等)和深度学习方法(分类、检测、分割模型)。文章最后总结了核心要点,提出了思考题和实践建议,建议从简单方法开始逐步优化。下一篇将介绍工业视觉基础技术——相机标定与角点检测。

yonggeit的博客 2886

【知识点讲解】大模型参数量与计算量(FLOPs)估算方法

指标参数量 (Params)计算量 (FLOPs)含义模型的大小,静态模型的计算复杂度,动态决定因素模型结构(宽度、深度)模型结构 +输入数据(B, S)影响内存占用、磁盘空间运行速度、能耗单位M (百万), B (十亿)工具thopptflopstorchinfothopptflopsfvcore重要提示FLOPs ≠ 速度:FLOPs 是理论计算量。实际速度还受内存带宽 (Memory Bandwidth)并行度硬件架构等因素严重影响。

AI浩 2096

C++遍历文件夹文件or图片

文章目录1、C++ 遍历某个文件夹下所有文件的方法步骤2、C++ 遍历文件夹下的所有文件3、Python 与 C++ 遍历文件夹下的所有图片实现代码1.Python 遍历2.C++ 遍历1)opencv 自带函数 glob () 遍历2)自己写一个遍历文件夹的函数3)基于 Boost4、C++ 遍历文件夹获取文件列表5、C++ 遍历文件夹下文件的方法6、C++ 遍历指定文件夹~相应操作7.1、OpenCV 利用 Directory 类实现文件夹遍历(只适用于 2.x 版本的 opencv)7.2 c++ 遍

qq_43612802的博客 2705

自助结账商品检测(Scanned Item Detection)——基于YOLOv8的RPC数据集实战

RPC数据集是由中国科学院自动化研究所发布的零售商品结账检测公开数据集,广泛用于自助结账和零售场景下的目标检测与识别。YOLOv8是YOLO系列最新版本,由Ultralytics推出,继承了YOLO家族的高效快速和高准确性,适用于实时检测场景。本文系统介绍了基于YOLOv8的RPC数据集自助结账商品检测方案,涵盖数据准备、训练、推理及UI界面设计。未来,可结合多模态感知、RFID融合技术,打造更加智能和稳定的自助结账系统。

YOLO 250

C++使用opencv遍历文件夹

1. 前言 之前用_finddata_t结构体做的C++文件夹遍历程序在Win10 VS2015环境下不能使用了,找了半天没找到原因,突然在网上看到使用Opencv也可以实现文件夹遍历的功能,这里对其进行了总结,主要分为3.0之前的版本和之后的版本。 2. Opencv 2X实现 在Opencv 2X的版本中包含了contrib模块,其里面封装了一个Directory类,用该类就可以实现对于目录的...

m_buddy的博客 3117

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux 下 C++ 遍历文件夹下的文件名

在C++中,我们一般学的时候都很少学到相关的文件夹方面的操作,相对来说,C++的文件夹操作也比较麻烦。而不像Python有OS模块,在操作文件夹方面简单易于上手。 下面我们直接看一下,C++遍历文件夹的代码吧: #include <string> #include <dirent.h> #include <stdio.h> #include &lt...

Dylan的博客 5937

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

c++ 遍历文件夹

Link:http://www.cnblogs.com/summerRQ/articles/2375749.html 编写程序遍历文件夹及其子文件夹下所有文件,并输出到标准输出流或者文件流。 1. 先考虑在单层目录下,遍历所有文件。以C:\WINDOWS为例: 用到数据结构_finddata_t,文件信息结构体的指针。 C++代码   struct _f

xdliunian的专栏 844

C++实现遍历指定文件或文件夹

1. 概述 在这片文章中将讲诉用C++实现实现遍历指定文件和文件夹,一个是基于Win32平台开发的,一个是基于MFC平台开发的,在这里贴出来与大家分享。在完成过程中参考了这篇博客 2. 基于Win32平台开发 定义的两个成员变量 private: std::vector filepath; //保存图像数据的位置信息 char m_szInitDir[1000]; //初

m_buddy的博客 4217

C++ WIN 文件夹遍历

#include #include #include using namespace std; //遍历某个文件夹下的文件和文件夹名 bool transfer(string fileName = "C:/Windows/*", int exeNum = 0); //遍历该文件夹下所有的文件名 void dfsFolder(string folderPath); int ma

PersonFly_小逗 439

C++ 遍历文件夹(含详细代码)

C++遍历文件夹遍历当前目录遍历当前目录及所有子目录重要说明 遍历当前目录 /**************************************** * 遍历当前目录下的文件夹和文件,默认是按字母顺序遍历 ****************************************/ #include<io.h> #include<iostream> using namespace std; bool FindAllFilesOnCurFolder(string p

Coding14的博客 9341
上一篇: linux下C++获取各种系统信息
下一篇: ubuntu下安装Apache+PHP+Mysql
bobui
博客等级 码龄19年 209粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值