C++基础,输出目录下的所有文件的路径

VS生成的C++项目常用目录设置 本文部分内容来自作者总结博主yyhero1的文章《VS项目属性的一些配置项的总结(important)》,部分来自执笔者平日里的小经验,执笔者作为一个外专业非科班出身小白,深知刚开始面对这一堆设置时候的恐惧与无助,遂发此文,帮助新人早日成为大牛! 1、常规 -> 输出目录:.pdb文件的文件路径--------$(SolutionDir)$(Configuration)\ -> .. 阅读详情

附上代码,做个笔记。

/*
	输出目录下面的所有文件的路径,如果有子目录,会进到子目录
*/
#include <iostream>
#include <io.h>

using namespace std;

void listFiles(string dir);

int main() {
	//目录路径
	string dir = "C:\\Users\\JSM-SQ\\Desktop\\face\\att_faces";
	listFiles(dir);
	system("pause");
	return 1;
}

void listFiles(string dir) {
	//在目录后面加上"\\*.*"进行第一次搜索
	string newDir = dir + "\\*.*";
	//用于查找的句柄
	intptr_t handle;
	struct _finddata_t fileinfo;
	//第一次查找
	handle = _findfirst(newDir.c_str(), &fileinfo);

	if (handle == -1) {
		cout << "无文件" << endl;
		system("pause");
		return;
	}

	do
	{
		if (fileinfo.attrib & _A_SUBDIR) {//如果为文件夹,加上文件夹路径,再次遍历
			if (strcmp(fileinfo.name, ".") == 0 || strcmp(fileinfo.name, "..") == 0)
				continue;

			// 在目录后面加上"\\"和搜索到的目录名进行下一次搜索
			newDir = dir + "\\" + fileinfo.name;
			listFiles(newDir.c_str());
		}
		else{
			string file_path = dir + "\\" + fileinfo.name;
			cout << file_path.c_str() << endl;
		}
	} while (!_findnext(handle, &fileinfo));

	_findclose(handle);
	return;
}

 

关于c/c++ 工程中获取文件路径、设置输出文件路径的问题 文件路径的表示可以分为绝对路径和相对路径: 绝对路径表示相对容易,例如: D:\\vctest\\glTexture\\texture\\dummy.bmp 这是绝对路径 同样:TCHAR szPath[MAX_PATH]; ::GetModuleFileName(NULL,szPath,MAX_PATH); szPath可以获取当前工程执行的绝对目录; 阅读详情

相关推荐

C++17 文件与目录操作 <filesystem>

头文件提供了一组强大的工具来处理文件系统。你可以使用它来管理文件和目录,获取文件和目录的信息,以及执行文件操作。这些功能使得处理文件和目录变得更加容易,而且可移植性更好,因为头文件可以在多个平台上使用。

陈子青的博客 9783

vs工程下的输出目录/输出文件/工作目录等

vs工程下的输出目录/输出文件/工作目录等 1.vs解决方案下各文件夹的包含关系 一般来说,vs中的c++项目的解决方案总文件夹下包含解决方案配置文件sln和一个项目总文件夹和x64文件夹(包含一个Debug文件夹以及一个Release文件夹,存放最终生成的结果exe或dll,如果不使用Release生成,则不存在Release文件夹)共四个文件夹。 而解决方案和项目文件夹包含关系下包含C++源文件头文件、项目配置文件和一个Debug文件夹以及一个Release文件夹(注意,此处的Debug和R.

zxmyoung的博客 5759

C++ 快速获取文件夹(目录)下的所有文件名

说起使用C++操作文件,最常见的是当属对单一文件进行读写了,但有时我们需要一个目录下的所有文件又该怎么快速获取呢? 这个问题的难点在于如何查找文件目录下的文件及其数量,以及如何递归查找目录下的子目录的文件及其数量。 我一下子就懵了,赶紧打开搜索引擎,在互联网上找了一圈,发现核心代码几乎都是同一段(原作者已不可考究): #include <iostream> #include <string> #include <vector> //注意这个头文件 #include &lt

夏虫爱语冰的博客 2万+

c++文件输入输出流fstream指定文件路径正确书写

1、直接复制文件路径读取文件流(❌错误的,无法读取成功) fstream afile; //afile.open("E:\C++\test", ios::out | ios::in); 复制test的路径只会复制到文本test的上一层 afile.open("E:\C++\test\test.txt", ios::out | ios::in); //这是test.txt正确路径 2、fstream文件流读取,路径名中的斜杠要双写,如: "D:\\MyFiles\\ReadMe.txt"

weixin_42322256的博客 1万+

DevEco Studio在初始化时出现Installing pnpm@8.13.1...npm ERR! code ETIMEDOUTnpm ERR! syscall connectnpm E

npm的仓库源设置的有问题,下载不了鸿蒙相关组件,所以你的启动依赖都没有,或者以前下载过npm,使用的源改的乱七八糟了。以前安装过前端相关的node.js的话,启动的时候记得使用管理远权限。(DevEco Studio)就出错,npm显示超时。

qq_56392862的博客 2628

Warning-[INFL_DELTA] Too many events zero delay loop

项目场景: 运用VCS工具执行仿真的时候,遇到如下错误提示,但仿真还在继续。 Warning-[INFL_DELTA] Too many events Possible zero delay loop. Too many events in the simulation at time 0 fs. 问题描述: 为什么会有这个问题; 什么导致了这个问题; 原因分析: 1、为什么会有这个问题 由于竞争条件或编码风格不明确,可能会产生零延时回路,导致仿真挂起或仿真时间无限。 2、什么导致了这个问题 举

hh199203的博客 1万+

C++ 输出目录、中间目录设置

输出目录建议配置为: $(SolutionDir)bin$(Platform)$(Configuration) 中间目录建议配置为: $(SolutionDir)bin\intermediate$(Platform)$(Configuration)\ 来源于cherno的c++教程,感谢大佬。 感觉时间老是不够用啊。 ...

老王的博客 2140

【黑马点评】项目知识点及面经整理

【黑马点评】项目知识点及面经整理

m0_52031708的博客 6604

最基础的CMake,包含生成可执行文件,指定C++标准、查找某个路径下的所有源文件、将可执行和库文件分别输出到指定目录、 编译生成动态库

最基础的CMake,包含生成可执行文件,指定C++标准、查找某个路径下的所有源文件、将可执行和库文件分别输出到指定目录、 编译生成动态库。

m0_73537205的博客 1591

【无机纳米材料科研制图——OriginLab 0205】Origin对BET吸附/脱附曲线及孔径分布制图...

此篇,我们来分享如何对BET数据进行处理和制图。 一、等温吸脱附曲线绘制 1)找到等温吸脱附文件。 一半来说,对一个样品测一次BET,会产生很多数据,具体因仪器而异。我这里的数据主要有两个文件夹,一个脱附,一个吸附,吸附文件夹中多了一个等温吸脱附的文件夹。而这...

XD_Yangf的博客 803

opencv案例实战——银行卡模式匹配识别

在之前的几篇文章中我们已经介绍了opencv的一些基础知识,本篇文章我们将结合一个案例运用之前的知识并且学习opencv中模式匹配的应用,用到的知识点如果有不清楚的可以查看上面列出来的系列文章。具体代码会放在最后。

艾醒的博客 1339

CMake基础(找头/源文件,输出指定路径)

以上命令是基于一个简单的tree,即源文件,头文件,cmakelists文件都在一个文件夹下,但是在实际的工程中,头文件和源文件以及cmake文件会处于不同文件夹里,所以现在我们来修改一下文件结构,使其更直观,将源文件放进src文件夹下,头文件放进include文件夹下,cmake文件放在src同级文件中,如下所示。除了 CMAKE_CURRENT_SOURCE_DIR 外,还可以使用宏 PROJECT_SOURCE_DIR,指向当前项目的根目录。加入这句指令后,程序就可以被顺利编译了。

qq_60073245的博客 406

[系统安全] 十六.PE文件逆向基础知识(PE解析和PE编辑工具)

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~ 作者前面介绍了三个漏洞,包括Chrome浏览器保留密码渗透解析、通过Chrome浏

杨秀璋的专栏 1万+

c++ 开发中利用yaml-cpp读写yaml配置文件

在程序员的开发生涯中,读写配置文件必不可少。 配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。 配置文件的格式有很多,最简单的有一行一行的文本,也有像 json、xml、protocol buffer 这样结构化的格式,当然也有 yaml 这种格式。 今天的博文介绍的是如何在 C++ 开发中利用 yaml-cpp 开源库读写 yaml 配置文件。 如果有 Python 开发经验的同学...

frank 的专栏 6万+

DeepSeek-OCR安装部署文档和避坑指南,包含大多数人遇到的安装报错问题

DeepSeek-OCR安装部署指南摘要:本文详细介绍高性能OCR工具DeepSeek-OCR的安装流程,支持多语言识别和复杂场景文字提取。系统要求包括Linux/Windows/macOS操作系统,推荐NVIDIA显卡(显存≥6GB)和≥16GB内存。安装步骤涵盖:1)创建conda虚拟环境;2)安装PyTorch等核心依赖;3)解决常见问题如CUDA版本冲突、模型下载慢等。提供GPU内存不足等问题的解决方案,帮助开发者快速部署OCR服务。(149字)

yolo模型训练找我,AI游戏合作找我 2946

PNETLab 镜像包官方下载太慢?不急,最新版本PNET_4.2.10分享!

你好,这里是网络技术联盟站,我是瑞哥。PNETLab是一个强大的网络仿真工具平台,全称Packet Network Emulator Tool Lab。它不仅允许用户进行深入的网络实验,还支持社区成员之间的实验室共享。PNETLab致力于为学习者、教师以及网络工程师提供一个全面的实验环境,以便于他们能够在实际部署前测试和验证网络配置和协议。和。这两个部分相辅相成,共同构成了一个全面且灵活的网络仿真生态系统。

网络技术联盟站 4472

cpp filesystem 仓鼠学C++17:文件系统库

本文介绍了CPP的文件系统库(filestream)并且提供了相应的配置与功能介绍,并且举了自己成功运行的一系列例子进行讲解,希望支持

weixin_60849947的博客 2314

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

vs下的输出目录/输出文件/工作目录-总结

vs下的输出目录/输出文件/工作目录-总结 一、vs解决方案下各文件夹的包含关系 一般来说,vs中的c++项目的解决方案总文件夹下包含解决方案配置文件sln和一个项目总文件夹和一个Debug文件夹以及一个Release文件夹(共四个文件夹,其中Debug和Release文件夹中存放最终生成的结果exe或dll,如果不使用Release生成,则不存在Release文件夹)。 而解决方案和项目文件夹包含关系下包含C++源文件头文件、项目配置文件和一个Debug文件夹以及一个Release文件夹(注意,此处的D

weixin_41821317的博客 9265

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++ 输出当前所在的路径

C++ 输出当前项目路径 我的小站、Github、优快云 代码: #include <iostream> #include <filesystem> using namespace std; int main() { std::cout << "Current path is " << std::filesystem::current_path() << '\n'; int n; cin >> n; }

小阮的博客 5827

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【C++篇】C++的输入和输出

知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的错误,同时方便本人的基础复习,也希望能帮助到大家最好的好人,都是犯过错误的过来人;一个人往往因为有一点小小的缺点,将来会变得更好。如有错漏之处,敬请指正,有更好的方法,也希望不吝提出。最好的生活方式就是和努力的大家,一起奔跑在路上。

陈七的博客,学习知识分享,期待与大家的交流 3万+

C++如何获取当前路径下所有文件的文件名

C++如何获取当前路径下所有文件的文件名 今天我遇到了这样一个任务:要求编写一个程序,统计和这个程序在同一目录下(及其子目录)所有文件的单词数。统计单词数十分倒不是太难,倒是找出同一目录下的所有文件,是我从来没有接触过的。仔细分析,这个问题其实包含两个小问题: 1. 如何获取当前程序所在文件夹的路径 2....

F~C~H的博客 1万+

vs2017+配置工程的编译路径(输出目录和中间目录)

vs2017+配置工程的编译路径(输出目录和中间目录) TIPS:以下使用visual C++中Windows桌面向导生成的解决方案为例。且演示的visual studio的版本为2017,即visual studio 2017。 一、说明默认的工程配置编译路径 TIPS:我们在解决方案内新建两个项目。 其中,两个项目project1和project2的编译路径,即输出目录和中间目录均是默认配置。(项目(鼠标右键)→属性→配置属性→常规) 配置:所有配置意味着包括debug和release

田螺姑娘的博客 1万+

C++ stat判断路径是文件还是目录

C++ stat判断路径是文件还是目录 1 #include <iostream> 2 #include <sys/stat.h> 3 4 using namespace std; 5 6 void foo ( const char* path ) { 7 struct stat s; 8 if ( stat ( pa...

weixin_30641465的博客 1224

VS2022配置工程的编译路径(输出目录和中间目录)

VS2022配置工程的编译路径

White_Five的博客 1万+

C++之获取当前程序的路径、Windows目录的路径和系统目录的路径

对于Windows,系统目录通常位于C:\Windows\System32(对于32位系统)或C:\Windows\SysWOW64(对于64位系统中的32位应用程序)。例如,如果你的程序名为MyApp.exe,并且它位于C:\Program Files\MyApp\目录下,那么当前程序的路径就是C:\Program Files\MyApp\MyApp.exe。这个头文件用于输入/输出流,尽管在这段代码中它并没有被用到,因为所有路径的打印都是通过`wprintf`完成的,而不是`std::cout`。

T20151470的博客 4545

makefile 输出文件到指定路径

Makefile 一点一滴(二)—— 输出文件到指定路径 先来看最简单的 makefile 文件: 复制代码 TestCpp : TestCpp.o g++ -o TestCpp TestCpp.o TestCpp.o : TestCpp.cpp g++ -c TestCpp.cpp clean : rm -rf TestCpp.o 复制代码 冒号前是要生成的文件,冒号后是该文件所依赖的文件 下一...

weixin_38853761的博客 5878
上一篇: C++基础,判断文件是否存在,存在即删除,不存在创建
下一篇: C++基础,删除指定文件夹以及文件夹下的所有文件
ctgu_sq
博客等级 码龄10年 24粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值