linux中读取目录的内容
来源:互联网 发布:java的游戏引擎 编辑:程序博客网 时间:2024/06/06 17:43
读取目录的内容:
读取步骤是:
1、获得目录流;
2、读取目录内容;
3、关闭目录流;
1、获得目录流;
#include<sys/types.h>
#include<dirent.h>
DIR *opendir(const char *name);//成功调用opendir会创建name所指向目录的目录流,也就是打开目录流//
#include<sys/types.h>
#include<dirent.h>
int dirfd(DIR *dir);//成功调用返回目录流dir的文件描述符,也就是获得目录的描述符//
2、从目录流读取:
使用opendir创建一个目录流后,程序可以从目录中读取目录项,使用系统调用readdir(),可以从给定的DIR对象中依次返回目录项:
#include<sys/types.h>#include<dirent.h>struct dirent *readdir(DIR *dir);//成功调用会返回dir指向的下个目录项,结构dirent指向目录项,在<dirent.h>中定义:struct dirent{ ino_t d_ino; //inode number// off_t d_off; //offset to the next dirent// unsigned short d_reclen; //length of this record// unsigned char d_type; //type of file// char d_name[256]; //filename//};
要获取整个目录,可以连续的调用readdir(),直到返回NULL时,整个目录读取完毕,如:
#include<unistd.h>#include<dirent.h>#include<stdio.h>int main(int argc,char *argv[]){ char buf[100]; char *pbuf; pbuf=getcwd(buf,100); //获得当前工作目录// printf("pbuf=%s\n",pbuf); printf("buf=%s\n",buf); DIR *dir; dir=opendir(pbuf); //打开一个目录流对象// struct dirent *diren; while((diren=readdir(dir))!=NULL){//读取目录// printf("ino_t=%d\n",diren->d_ino); printf("d_recien=%d\n",diren->d_reclen); printf("d_type=%d\n",diren->d_type); printf("d_name=%s\n",diren->d_name); } closedir(dir);//关闭目录流// return 0;}
3、关闭目录流;
#include<sys/types.h>
#include<dirent.h>
int closedir(DIR *dir);//调用成功将关闭目录流,包括目录文件描述符,并返回0//
- linux中读取目录的内容
- Linux编程中目录内容的读取(实现ls功能)
- Linux 根文件系统中各个主要目录存放的内容
- Linux中C/C++对目录的读取
- Linux各目录的内容
- 打开目录、读取目录里面的内容 opendir readdir
- linux中/proc/*目录中的内容分析
- Android怎样读取Assets目录下的网页的内容
- Java中读取txt文本中内容+目录文件复制到指定目录
- ------------------用SQL读取某目录下EXCEL文件的内容----------------
- Java读取指定目录下的文件内容
- python读取一个目录下所有txt里面的内容
- windows中建立以自己的名字命名的共享目录,在linux字符终端浏览共享目录中内容。
- Linux目录意义,即存放的内容
- linux替换目录内的内容
- linux下的目录含义和内容
- Linux各个目录的作用及内容
- Linux各个目录的作用及内容
- 华为机试——操作系统任务调度问题
- 二叉树前序、中序、后序,递归和非递归算法
- 安装插件常见问题
- 多种Spring.jar详解
- Maven基础
- linux中读取目录的内容
- android 开源项目记录
- Android Fragment完全解析,关于碎片你所需知道的一切
- C++构造函数虚拟化
- 宏中"#"和"##"的用法
- NYOJ 491 dfs() (水)
- asp带刷新的验证码代码
- QT界面美化
- &和&&的区别