c linux 文件文件夹遍历

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>

void listFiles(const char *path) {
    struct dirent *entry;
    DIR *dir = opendir(path);

    if (dir == NULL) {
        perror("Error opening directory");
        exit(EXIT_FAILURE);
    }

    while ((entry = readdir(dir)) != NULL) {
        if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
            continue;
        }
        // Check if the entry is a directory and recursively list its contents
        if (entry->d_type == DT_DIR) {
            char subpath[256];
            printf("dir %s\n", entry->d_name);
            snprintf(subpath, sizeof(subpath), "%s/%s", path, entry->d_name);
            listFiles(subpath);
        }
        else printf("file %s\n", entry->d_name);
    
    }

    closedir(dir);
}

int main() {
    const char *folderPath = "."; // Change this to the desired folder path
    listFiles(folderPath);

    return 0;
}
相关推荐
良许Linux4 分钟前
程序员如何利用周末提升自己
linux
麻芝汤圆4 分钟前
Linux操作系统的计算机体系结构与网络安全的深度关联
大数据·linux·运维·服务器·网络·安全·web安全
菜鸟康11 分钟前
Linux网络编程——TCP通信的四次挥手
linux·网络·tcp/ip
良许Linux13 分钟前
新手想玩硬件,买单片机还是树莓派好?
linux
良许Linux15 分钟前
程序员的护城河是什么?
linux
南林yan19 分钟前
滑动窗口7:30. 串联所有单词的子串
算法
Tisfy22 分钟前
LeetCode 3396.使数组元素互不相同所需的最少操作次数:O(n)一次倒序遍历
算法·leetcode·题解·数组·遍历·哈希表
WG_1723 分钟前
图论:单源最短路(BF算法+迪杰斯特拉算法+spfa算法)
算法·图论
良许Linux24 分钟前
转行嵌入式,需要自学多久?
linux
银河小铁骑plus1 小时前
力扣hot100_动态规划
算法·leetcode·动态规划