歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統下讀取目錄中文件名信息題解(含源代碼)

Linux系統下讀取目錄中文件名信息題解(含源代碼)

日期:2017/2/28 16:40:07   编辑: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成員的值為每次讀取到的目錄中的文件名稱。

詳細信息,可參考下文的源程序。

Copyright © Linux教程網 All Rights Reserved