linux c 列出当前工作目录下所有的文件

14.2.4 列出目录的简单程序

这里的例子打印出当前工作目录下所有的文件:

#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

int main(void)
{
DIR* dp;
struct dirent* ep;

dp = opendir("./");
if (dp != NULL)
{
while (ep = readdir(dp))
puts(ep->d_name);
(void) closedir(dp);
}
else
puts("Couldn't open the directory.");

return 0;
}


其中,

1)DIR 目录流(directory stream)类型;

2)struct dirent 包含以下内容:
char d_name[] 文件名
ino_t d_fileno 文件序列号
unsigned char d_namelen 文件名长度
unsigned char d_type 文件类型
文件类型可以是:DT_UNKNOWN 不明类型
DT_REG 普通文件
DT_DIR 目录(to marmoset:这是你需要知道的)
等;

等;

3)DIR* opendir(const char* dirname)
打开并返回一个名为dirname的用于读取操作的目录流;

4)struct dirent* readdir(DIR* dirstream)
从目录中读取下一条入口(entry),返回一个包含文件信息的dirent结构;

5)int closedir(DIR* dirstream)
关闭名为dirstream的目录流;

6)puts()函数就不用我介绍了吧。


这是Linux/Unix下的情况;相信dos,windows下会更方便,无奈我没有这方面的资料(你可以自己多看看VC、BC庞大的帮助系统,应该是可以找到相应函数和结构的。这里我给出的信息,你可以当作参考,大概知道应该找些什么方面的帮助.)。  

你可能感兴趣的:(linux)