C语言列出文件目录中的所有文件
来源:互联网 发布:数据交换共享平台源码 编辑:程序博客网 时间:2024/05/22 10:22
dirent.h头文件中包含了一些对文件目录进行操作的接口,虽然不是C标准中的,但是在C语言编程中是一类广泛使用的接口类型。可以通过这个头文件中的接口来查看文件目录中的文件列表,以及各个文件的信息大小等。一般情况下,vs或者vc6.0中是没有改头文件的。如果想在程序中使用,可以手动加入。下面是头文件的下载地址http://download.csdn.net/detail/qq_20916555/9488536 (本人上传的,免积分下载)
下面就对dirent中常用的数据类型以及接口作粗略的解释:
struct DIR {
struct dirent ent;
struct _WDIR *wdirp;
} ;
DIR结构体代表目录操作数据流,其中包括struct diren和struct_WDIR,一般通过接口opendir(const char*dirpath)返回来改目录的操作数据流。
下面是几个重要的接口函数;
DIR *opendir(const char*); //通过一个目录路径返回一个对该目录数据流操作的DIR,接下来对目录的读取和搜索都要使用此返回值.
struct dirent *readdir(DIR *) //返回当前DIR中的目录或者文件实体,当再次被调用调用的时候,该dirent指针指向下一个目录或者文件实体。当函数返回null的时候,说明指针已指向操作流的尾部。
void seekdir (DIR * dir, long int offset); //用来设置目录操作流的读取位置,调用seekdir函数的时候便从该位置进行读取。参数offset表示相对于文件目录开头的偏移量。
int telldir(DIR *dir) ;//返回当前目录流中指针位置。改位置是相对于文件开头偏移量的下一个实体读取位置的返回值。
实例程序:
程序功能:列出目录下所有文件和目录,注意文件目录的路径中不要包含中文,否则无法识别。
#include <iostream>#include <windows.h>#include "dirent.h"using namespace std;int main(){ int filesize = 0; DIR *dirptr=NULL; int i=1; struct dirent *entry; if((dirptr = opendir("E:\\debug"))==NULL) { printf("opendir failed!"); return 1; }else { while(entry=readdir(dirptr)) { printf("filename%d = %s",i,entry->d_name); //输出文件或者目录的名称,一般文件含格式名,目录没有格式名 printf("filetype = %d\n",entry->d_type); //输出文件类型 i++; } closedir(dirptr); } return 0;}
文件类型:
由程序运行结果可以知道普通文件类型的type为32768
目录类型为1638
注意:
其中.表示当前目录
..表示当前目录的上一层目录。
- C语言列出文件目录中的所有文件
- 列出目录中的所有文件
- APUE 1-3.c列出一个目录中的所有文件
- 01列出一个目录中的所有文件
- 列出一个目录中的所有文件
- c语言列出文件夹中的文件
- APUE 1-3程序,列出一个目录中的所有文件
- 在Python中列出目录中的所有文件
- 递归列出目录中的所有文件,包括子文件夹
- [Linux C]列出指定目录下的所有文件(夹)
- python 列出文件目录下所有文件
- CMD列出目录中的文件
- C语言列出某个目录下的文件
- tomcat中列出目录下所有文件
- 列出某个目录下的所有文件
- tomcat中列出目录下所有文件
- 批处理之列出目录下所有文件
- 列出目录下的所有文件
- 开关机动画流程
- 关于 UITapGestureRecognizer 一些注意的地方
- 全局变量、局部变量与关键字static、extern的使用分析
- 手势识别--GestureDetector
- 安卓学习网站
- C语言列出文件目录中的所有文件
- 关于大型网站技术演进的思考(三)--存储的瓶颈(3)
- Elasticsearch 2.2.0 插件篇:插件清单
- 苹果针对 IAP 11.12的反馈
- C++访问控制
- 极限编程-拥抱变化阅读感想(一)
- 中国剩余定理——poj1006
- MyEclipse快捷键大全
- 关于大型网站技术演进的思考(四)--存储的瓶颈(4)