【Linux】Linux 平台获取指定目录文件列表

在 Linux 平台上,可以使用 opendir()readdir()closedir() 函数来遍历文件目录下的文件。具体步骤如下:

  1. 使用 opendir() 函数打开要遍历的目录,该函数返回一个指向 DIR 类型的指针,表示打开的目录流。其原型如下:

    DIR *opendir(const char *name);
    

    其中,name 参数是要打开的目录名,可以是绝对路径或相对路径。如果打开成功,返回一个指向 DIR 类型的指针,否则返回 NULL

  2. 使用 readdir() 函数读取目录中的文件,该函数返回一个指向 dirent 类型的指针,表示读取到的目录项。其原型如下:

    struct dirent *readdir(DIR *dirp);
    

    其中,dirp 参数是 opendir() 函数返回的目录流指针。如果读取成功,返回一个指向 dirent 类型的指针,否则返回 NULL

  3. 循环调用 readdir() 函数,直到读取到所有的目录项。每次读取到一个目录项后,可以使用 d_name 字段获取文件名,使用 d_type 字段获取文件类型(例如,DT_REG 表示普通文件,DT_DIR 表示目录)等信息。

  4. 使用 closedir() 函数关闭目录流,释放资源。其原型如下:

    int closedir(DIR *dirp);
    

    其中,dirp 参数是要关闭的目录流指针。如果关闭成功,返回 0,否则返回 -1。

下面是一个简单的 C 语言例子,演示如何遍历目录下的文件:

#include <stdio.h>
#include <dirent.h>

int main() {
    DIR *dir;
    struct dirent *entry;

    dir = opendir(".");
    if (!dir) {
        perror("opendir");
        return 1;
    }

    while ((entry = readdir(dir)) != NULL) {
        printf("%s\n", entry->d_name);
    }

    closedir(dir);

    return 0;
}

在上面的例子中,首先使用 opendir() 函数打开当前目录,然后循环调用 readdir() 函数,读取目录中的文件,最后使用 closedir() 函数关闭目录流。需要注意的是,这里使用了 perror() 函数来输出错误信息,以便于调试。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值