Linux系统下读取目录中文件名信息题解(含源代码)

为了项目需要,,需在软件增加插件功能。为了尽量减少主程序的改动(尽量不改动),需要动态扫描插件目录中的文件,以便自动增减插件,从而实现不同的功能。

为了帮助读者理解下面的工作原理,先将一些预备知识:

在Linux系统中,一切设备皆为文件!什么意思呢?就是说,在Linux系统中,不管文件系统中挂载了什么设备或是出现了什么目录,系统皆将它们看成文件。这有别于windows系统。因此,在Linux系统中实现上述操作,要远简单于windows系统。好了,知道这些就足够了:)

现特地为读取目录中文件名信息进行了如下方式的解题:

1、添加include语句:#include <sys/types.h> #include <dirent.h>2、在源程序中声明以下变量:声明结构体指针 struct dirent * ptr;声明一个dir指针 DIR * fd;必要的时候可以malloc或new.3、使用opendir()函数打开目录文件opendir()函数原型如下:DIR *opendir(const char *name);4、使用readdir()函数读取目录中文件内容readdir()函数原型如下:struct dirent *readdir(DIR *dir);readdir()每次从目录文件中提取一个文件项目,指针前移。直至到文件末尾返回NULL值。ptr指针指向 readdir()返回的dirent 结构体,每次函数调用返回的结果不同 dirent中的成员内容不同,其中d_name成员的值为每次读取到的目录中的文件名称。

详细信息,可参考下文的源程序。

也就越容易失败,还不如怀揣一颗平常心,“但行好事,莫问前程”,往往成功的几率反而更大些

Linux系统下读取目录中文件名信息题解(含源代码)

相关文章:

你感兴趣的文章:

标签云: