linux中的读目录,在linux中读取目录内容
我们如何在
Linux中使用C语言读取目录的内容(子目录和文件名).
这是一个递归程序,以递归方式打印所有子目录和文件的名称.
用法:./ a.out路径名
不检查作为命令行参数提供的初始路径名的错误条件.
基本代码流程:
读取当前目录中的所有条目.
如果是目录名,则将其名称添加到路径名中,并以递归方式调用函数.
否则打印文件的名称.
有关特定函数的详细信息可以在dmuir指出的各个手册页中引用:
#include
#include
#include
#include
int read(char *pth)
{
char path[1000];
strcpy(path,pth);
DIR *dp;
struct dirent *files;
/*structure for storing inode numbers and files in dir
struct dirent
{
ino_t d_ino;
char d_name[NAME_MAX+1]
}
*/
if((dp=opendir(path))==NULL)
perror("dir\n");
char newp[1000];
struct stat buf;
while((files=readdir(dp))!=NULL)
{
if(!strcmp(files->d_name,".") || !strcmp(files->d_name,".."))
continue;
strcpy(newp,path);
strcat(newp,"/");
strcat(newp,files->d_name);
printf("%s\n",newp);
//stat function return a structure of information about the file
if(stat(newp,&buf)==-1)
perror("stat");
if(S_ISDIR(buf.st_mode))// if directory, then add a "/" to current path
{
strcat(path,"/");
strcat(path,files->d_name);
read(path);
strcpy(path,pth);
}
}
}
int main(int argc,char *argv[])
{
read(argv[1]);
}
linux中的读目录,在linux中读取目录内容相关推荐
- linux中用vi读文件夹,linux下vi与vim编辑器的简单区别及VI详细使用方法
vi与vim一样都是编辑器,不同的是vim更高级一些,可以理解是vi的高级 版本.vi就像Windows中的计事本,而vim则可以算的上是 office中的word.vi主要用来编辑一些文件,vim是 ...
- linux内核 noreturn,读《ARM Linux 内核源代码剖析》.......第13章 setup_processor()
setup_processor首先是查找保存相应处理器信息的结构体,然后根据结构体里的值,对处理器相关的各种变量进行设置. setup_processor static void __init set ...
- C#中Directory.GetFiles() 函数的使用方法(读取目录中的文件)
转自:http://www.365jz.com/article/24023 C#中Directory.GetFiles(string path , string searchPattern, Sear ...
- Linux操作系统使用基础05:Linux磁盘与文件系统管理
目录 1. 文件系统特性 1.1 概述 1.1.1 操作系统相关性 1.1.2 磁盘与文件系统的关系 1.2 文件数据的存放 1.2.1 索引式 1.2.2 链表式 2. Linux的Ext2文件系统 ...
- 【Linux】Shell运行原理及Linux权限的概念
文章目录 一.Shell运行原理 二.Linux权限的概念 1)Linux中的用户 2)Linux权限管理 1.文件访问者的分类(人) 2.文件的权限(事物属性) ① 文件类型 ② 文件基本权限 ④ ...
- linux大多数进程都是sleep,Linux电源管理(5)_Hibernate和Sleep功能介绍
Linux电源管理(5)_Hibernate和Sleep功能介绍 作者:wowo 发布于:2014-6-10 16:11 分类:电源管理子系统 1. 前言 Hibernate和Sleep两个功能是Li ...
- pyhton 读取目录下所有文件夹下的文件(指定文件)
前言 1.有的时候比如我们操作错了,将一个文件夹里的.png图片都弄到了不同的文件夹中,现在想还原,如果一个个手工选择剪切,恐怕不是一个好办法. 2.有的时候,想把某个目录下的所有文件夹中的jpg格式 ...
- php遍历目录图片并显示,PHP读取目录下所有图片并输出一张图片地址
原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/3048.html 关键词:PHP所有图片 PHP枚举目录与子目录 PHP读取目录与子目录 前几天,本来想给 ...
- linux在home中新建目录temp,Linux命令之目录操作命令
目录操作命令 cd cd命令功能 在每一个操作系统中,都需要有改变目录的工作,Linux也不例外,在Linux操作系统中,是通过cd命令来改变工作目录的. cd命令的命令格式及用法 命令格式:cd 命 ...
最新文章
- 酷狗音乐QQ显示(VC源代码)
- Unity下的ECS框架 Entitas简介
- .top域名应注意什么
- 如何批量删除会计科目、供应商、客户的主数据
- jdk11默认使用的垃圾回收器是G1
- CRMEB移动端前端目录结构
- STL-红黑树源码实现
- Document is invalid: no grammar found. at (null:3:8)
- 数据结构与算法 | 用栈实现队列
- 发了篇paper,双非二本的她直博浙大
- Linux netfilter源码分析(5)
- 计算机与控制工程学院烟台大学,烟台大学计算机与控制工程学院欢迎大家
- 2月28日 PCA降维,SVD压缩,中心化、归一化、标准化、k-l变换
- Cesium 鼠标单击和双击事件
- 计算机网络---TCP/IP网络编程实验
- 史上最详细的测试用例的设计方法及案例
- android 投屏 版本号,安卓设备投屏画质模糊及投屏延迟的调整方法
- 无人车系统(七):Udacity ‘s无人驾驶仿真环境(社区介绍)
- 推荐给你三个知识星球助你选对人生
- Uncaught TypeError: XXX is not a function解决
热门文章
- SERV-U FTP SERVER和SERV-U MFT SERVER的区别
- OpenBSD配置Apache反向代理
- 初学者如何开发出高质量J2EE系统
- x64dbg 修改为dll_c++笔记(dll 注入的实现)
- linux如何查tomcat是否安装,如何检测linux机器上是否安装了tomcat和ant
- sphinx-release 2.1.4
- Linux驱动修炼之道-内存映射
- Docker:You cannot remove a running container
- 【DP优化】【P1430】序列取数
- jms中activemq事务探讨