我们如何在

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中读取目录内容相关推荐

  1. linux中用vi读文件夹,linux下vi与vim编辑器的简单区别及VI详细使用方法

    vi与vim一样都是编辑器,不同的是vim更高级一些,可以理解是vi的高级 版本.vi就像Windows中的计事本,而vim则可以算的上是 office中的word.vi主要用来编辑一些文件,vim是 ...

  2. linux内核 noreturn,读《ARM Linux 内核源代码剖析》.......第13章 setup_processor()

    setup_processor首先是查找保存相应处理器信息的结构体,然后根据结构体里的值,对处理器相关的各种变量进行设置. setup_processor static void __init set ...

  3. C#中Directory.GetFiles() 函数的使用方法(读取目录中的文件)

    转自:http://www.365jz.com/article/24023 C#中Directory.GetFiles(string path , string searchPattern, Sear ...

  4. Linux操作系统使用基础05:Linux磁盘与文件系统管理

    目录 1. 文件系统特性 1.1 概述 1.1.1 操作系统相关性 1.1.2 磁盘与文件系统的关系 1.2 文件数据的存放 1.2.1 索引式 1.2.2 链表式 2. Linux的Ext2文件系统 ...

  5. 【Linux】Shell运行原理及Linux权限的概念

    文章目录 一.Shell运行原理 二.Linux权限的概念 1)Linux中的用户 2)Linux权限管理 1.文件访问者的分类(人) 2.文件的权限(事物属性) ① 文件类型 ② 文件基本权限 ④ ...

  6. linux大多数进程都是sleep,Linux电源管理(5)_Hibernate和Sleep功能介绍

    Linux电源管理(5)_Hibernate和Sleep功能介绍 作者:wowo 发布于:2014-6-10 16:11 分类:电源管理子系统 1. 前言 Hibernate和Sleep两个功能是Li ...

  7. pyhton 读取目录下所有文件夹下的文件(指定文件)

    前言 1.有的时候比如我们操作错了,将一个文件夹里的.png图片都弄到了不同的文件夹中,现在想还原,如果一个个手工选择剪切,恐怕不是一个好办法. 2.有的时候,想把某个目录下的所有文件夹中的jpg格式 ...

  8. php遍历目录图片并显示,PHP读取目录下所有图片并输出一张图片地址

    原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/3048.html 关键词:PHP所有图片 PHP枚举目录与子目录 PHP读取目录与子目录 前几天,本来想给 ...

  9. linux在home中新建目录temp,Linux命令之目录操作命令

    目录操作命令 cd cd命令功能 在每一个操作系统中,都需要有改变目录的工作,Linux也不例外,在Linux操作系统中,是通过cd命令来改变工作目录的. cd命令的命令格式及用法 命令格式:cd 命 ...

最新文章

  1. 酷狗音乐QQ显示(VC源代码)
  2. Unity下的ECS框架 Entitas简介
  3. .top域名应注意什么
  4. 如何批量删除会计科目、供应商、客户的主数据
  5. jdk11默认使用的垃圾回收器是G1
  6. CRMEB移动端前端目录结构
  7. STL-红黑树源码实现
  8. Document is invalid: no grammar found. at (null:3:8)
  9. 数据结构与算法 | 用栈实现队列
  10. 发了篇paper,双非二本的她直博浙大
  11. Linux netfilter源码分析(5)
  12. 计算机与控制工程学院烟台大学,烟台大学计算机与控制工程学院欢迎大家
  13. 2月28日 PCA降维,SVD压缩,中心化、归一化、标准化、k-l变换
  14. Cesium 鼠标单击和双击事件
  15. 计算机网络---TCP/IP网络编程实验
  16. 史上最详细的测试用例的设计方法及案例
  17. android 投屏 版本号,安卓设备投屏画质模糊及投屏延迟的调整方法
  18. 无人车系统(七):Udacity ‘s无人驾驶仿真环境(社区介绍)
  19. 推荐给你三个知识星球助你选对人生
  20. Uncaught TypeError: XXX is not a function解决

热门文章

  1. SERV-U FTP SERVER和SERV-U MFT SERVER的区别
  2. OpenBSD配置Apache反向代理
  3. 初学者如何开发出高质量J2EE系统
  4. x64dbg 修改为dll_c++笔记(dll 注入的实现)
  5. linux如何查tomcat是否安装,如何检测linux机器上是否安装了tomcat和ant
  6. sphinx-release 2.1.4
  7. Linux驱动修炼之道-内存映射
  8. Docker:You cannot remove a running container
  9. 【DP优化】【P1430】序列取数
  10. jms中activemq事务探讨