C语言遍历文件和目录

[Linux]C语言遍历文件和目录 #include #include #include #include #include #include #include #define MAX_PATH_LENGTH 512 #define MAX_FILE_EXTENSION 9 unsigned long visit_dirs = 0; unsigned long visit_files = 0; void lis 阅读详情
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>

#define MAX_PATH_LENGTH		512
#define MAX_FILE_EXTENSION	9

unsigned long visit_dirs = 0;
unsigned long visit_files = 0;

void listdir(char *path){
	DIR 		*ptr_dir;
	struct dirent 	*dir_entry;
	int 		i = 0;
	char		*child_path;
	char		*file_path;

	child_path = (char*)malloc(sizeof(char)*MAX_PATH_LENGTH);
	if(child_path == NULL){
		printf("allocate memory for path failed.\n");
		return;
	}
	memset(child_path, 0, sizeof(char)*MAX_PATH_LENGTH);

	file_path = (char*)malloc(sizeof(char)*MAX_PATH_LENGTH);
	if(file_path == NULL){
		printf("allocate memory for file path failed.\n");
		free(child_path);
		child_path = NULL;
		return;
	}
	memset(file_path, 0, sizeof(char)*MAX_PATH_LENGTH);

	ptr_dir = opendir(path);
	while((dir_entry = readdir(ptr_dir)) != NULL){
		if(dir_entry->d_type & DT_DIR){
			if(strcmp(dir_entry->d_name,".") == 0 ||
			   strcmp(dir_entry->d_name,"..") == 0){
				continue;
			}

			sprintf(child_path, "%s/%s", path, dir_entry->d_name);
			printf("[DIR]%s\n", child_path);

			visit_dirs++;

			listdir(child_path);
		}

		if(dir_entry->d_type & DT_REG){
			sprintf(file_path, "%s/%s", path, dir_entry->d_name);
			printf("[FILE]%s\n", file_path);
			visit_files++;
		}
	}

	free(child_path);
	child_path = NULL;

	free(file_path);
	file_path = NULL;
}

int main(int argc, char* argv[]){
	if(argc == 2){
		listdir(argv[1]);
		printf("Total DIR: %ld, Total FILE: %ld\n", visit_dirs, visit_files);
	}else{
		printf("Usage: listdir <dir>\n");
		return;
	}
	
	return 0;
}

用linux c语言实现遍历某个目录下的子目录和文件,并保存和读取 要用 C 语言在 Linux 系统中遍历某个目录下的子目录和文件,并保存结果为文件,你可以使用标准的 POSIX 库函数,如 opendir、`readdir` 和 closedir,来读取目录内容。 阅读详情

相关推荐

C语言 实现遍历一个文件夹的所有文件

C语言 实现遍历一个文件夹的所有文件            最近学习C语言基础知识,有一个需求是需要遍历文件夹中的文件,对与这种很好实现,然后自己做了一个遍历所有文件的实现代码,做下记录: 实现代码: #include <stdio> #include <io> int main (void) { _finddata_t fileDir; long lfDir; if((lfDir = _findfirst(dir,&fileDir))==-1l) printf(No file is found\n); else{ printf(file lis

嵌入式 STM32 使用C语言打开读取歌曲目录

函数的返回指针是指向一个结构体,这个结构体里面包含了读到的文件信息,我们需要到的是结构体里面的d_name[256],该成员保存了读到的文件名字。方法:采用定时器,定时器中断判断是否识别语言,做标准位,退出播放歌曲,再去处理语音内容!opendir()函数的讲解大家可以到别的博主上面自行学习;需要初始化内存函数:用于SD卡链表申请。打开目录并读取过滤歌曲名:保存在链表。

Lushengshi的博客 1037

PX4飞控与MAVROS实战:从零搭建无人机ROS通信环境(附常见报错解决)

本文详细介绍了如何从零搭建PX4飞控与ROS的通信环境,重点解析了MAVROS的安装、硬件连接、串口权限配置以及坐标系转换等核心步骤。针对GeographicLib数据下载失败、串口权限不足等常见报错提供了实用解决方案,并附有Offboard模式控制的代码示例,帮助开发者快速建立稳定的无人机ROS开发环境。

dapp9builder的博客 335

C语言遍历目录及子目录下所有文件

C语言遍历目录及子目录下所有文件

c2737647040的博客 3474

手把手教你用Simulink+CANoe+Carsim搭建硬件在环仿真环境(避坑指南)

本文是一份详细的硬件在环仿真环境搭建指南,重点讲解如何将Simulink、CANoe和CarSim三大工具进行实战融合。内容涵盖软件版本兼容性、授权避坑、环境配置,并分步演示了从离线联合仿真到实现软实时同步的完整流程,旨在帮助汽车电子工程师高效构建稳定的HIL测试平台。

weixin_29092579的博客 406

APM无人船测绘实战:从RTK、测深仪到图传的完整系统集成指南

本文提供了一套完整的APM无人船测绘系统集成实战指南。从RTK模块配置、测深仪数据同步到图传系统接入,详细解析了硬件选型、接线、软件参数调试及QGC地面站任务规划的全流程,旨在帮助用户将分散的部件整合为可自主执行水下地形测绘的可靠工具。

rr23456的博客 521

C语言文件夹遍历

【代码】文件夹遍历

Liangzhaodong的博客 1573

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法 在上文《强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题》的基础上,实现了LSTM+MLP的Policy Gradient算法。 实现过程如下: import argparse, math, os, sys import numpy as np import gym from gym import wrappers import matplotlib.pyplot as plt import torch fr

hhy_csdn的博客 5636

遍历目录(C语言)

C语言遍历目录,找到目录下以.txt结尾的文件。

weixin_43432215的博客 466

第8.1节 满足构网要求的功率器件与散热设计

摘要: 构网型变流器的功率器件选型与散热设计面临严苛要求,需综合考虑过载能力、暂态应力与可靠性。IGBT模块选型需重点评估电压/电流等级、损耗特性及结温波动,而SiC MOSFET虽具有高频低损耗优势,但面临栅极可靠性等挑战。散热设计需采用液冷等先进技术控制结温波动,并通过电热应力仿真和寿命预测实现可靠性优化。系统化选型流程需结合规范要求、工况谱分析和实测验证,为构网型变流器提供坚实的物理基础。

技术工作者 914

【GameFramework框架】一、框架介绍

这是GameFramework框架教程的第一篇,但是博主不准备直接就讲GameFramework框架。【GameFramework框架】二、GameFramework框架介绍了。框架(Framework)通常被理解为一种基础要素的集合,它们用于承载系统的必要功能。约束性:框架定义了解决特定问题的边界,并将相关的软件组件约束在这个范围内,以保持框架的内聚性和解决问题的专注性。支撑性:框架本身不直接解决问题,而是提供一个基础的支撑结构,使得在其上构建的解决方案更为灵活和高效。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1万+

c语言 循环遍历目录,C语言遍历文件和目录

#include #include #include #include #include #include #include #define MAX_PATH_LENGTH512#define MAX_FILE_EXTENSION9unsigned long visit_dirs = 0;unsigned long visit_files = 0;void listdir(char *path){...

weixin_42494160的博客 1046

YOLOv12中的A2C2f模块详解,涉及区域注意力模块(A2)和 R-ELAN 结构详解

区域注意力模块(Area Attention, A2)的设计出发点是为了解决传统注意力机制在计算复杂度和内存访问效率上的问题。传统的自注意力机制(Self-Attention)具有二次方的计算复杂度(O(n²)),尤其是在处理高分辨率图像时,计算成本非常高。此外,注意力机制的内存访问模式不如卷积神经网络高效,导致在实际应用中难以满足实时性要求。区域注意力模块通过将特征图划分为多个区域,并在每个区域内进行注意力计算,从而显著降低了计算复杂度。

Limiiiing的博客 5514

C语言遍历文件夹目录中文件和文件夹

C语言遍历文件夹目录中文件和文件夹 去发现同类优质开源项目:https://gitcode.com/ 本仓库提供了C语言实现遍历文件夹目录中所有文件和文件夹的源代码。通过该代码,您可以轻松访问和操作指定目录下的文件与文件夹。 简介 此资源包含了一个功能完备的C语言程序,用于遍历指定目录及其子目录中的所有文件和文件夹。程序利用了标准库函数,并通过递归方式实现了目录的深度遍历。 使用说明 将提供的源...

gitblog_06749的博客 354

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C语言遍历文件夹目录中文件和文件夹:探索文件系统的深度与广度

C语言遍历文件夹目录中文件和文件夹:探索文件系统的深度与广度 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在软件开发和系统管理中,对文件系统的操作是一项基础而重要的技能。今天要推荐的这个项目——C语言遍历文件夹目录中文件和文件夹,正是针对这一需求提供的一个高效解决方案。通过该项目,开发者可以轻松地遍历指定目录及其子目录中的所有文件和文件夹,获取其详细信息。 项目技术...

gitblog_06738的博客 457

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

linux平台下基于C语言实现遍历文件目录

#include #include #include #include #include #include #include #include #include /* 文件大小和修改时间 */ static int get_file_size_time(const char *filename) { struct stat statbuf; /* 判断未打开文件 */

hb707934728的博客 3273

STM32F407中文手册

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

C语言遍历目录文件

使用C语言的 opendir、readdir 函数读取遍历指定目录下的指定类型的文件。

奇点.的博客 3825

Linux C :遍历输出指定目录下的所有文件

linux C 遍历目录及其子目录 #include &lt;stdio.h&gt;  #include &lt;string.h&gt; #include &lt;stdlib.h&gt;  #include &lt;dirent.h&gt;  #include &lt;sys/stat.h&gt;  #include &lt;unistd.h&gt;  #include &lt;sys/typ...

AIGC SR ISP RAW HDR EIS OCR YOLO DINO 1933

C语言遍历linux的目录及其子目录下的所有文件

int search_dir(char *path) { DIR *dir=NULL; struct dirent *entry=NULL; if((dir=opendir(path))==NULL) { printf("opendir failed\n"); return -1; } else { while((entry=readdir(dir))!=NULL) ...

weixin_39936714的博客 3133

【linux c开发】stat opendir目录及文件遍历实例

#include #include #include #include void show_files(char *path_name) {     struct stat file_stat;     DIR *pdir_name = NULL;     struct dirent *pdir_subname = NULL;     char filename_bu

Walter的专栏 2378

C语言删除文件夹下的目录

前几天使用Android反编译工具反编译了360 的软件,Xml文件不可以用,但是每个xml都对应的编译出了一个.txt文件 恢复的办法就是删除.xml然后重命名.txt文件,文件很多 打算写个小工具,想着尝试用C 语言写下,中间还是遇到了些问题 记录下来了. /* ==============================================================

liulipuo的专栏 4832
上一篇: RVDS4.0上开发cortex A8 NEON程序
下一篇: ARM嵌入式开发中的GCC内联汇编简介
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值