无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

C++/c遍历文件夹下所有文件函数代码遍历迭代目录实现分享(图文详解1)

C/C++ Micheal 7个月前 (12-20) 195次浏览 已收录 扫描二维码
文章目录[隐藏]
C++/c遍历文件夹下所有文件函数代码遍历迭代目录实现分享(图文详解1)

c遍历文件夹下所有文件

C++/c遍历文件夹下所有文件函数代码遍历迭代目录实现分享

在C语言中,要遍历文件夹下的所有文件,你可以使用以下方法:

方法一:使用标准库函数

步骤:

  1. 包含头文件 <dirent.h> 和 <stdio.h>
  2. 打开目标文件夹,使用 opendir() 函数。该函数返回一个指向 DIR 结构的指针。
  3. 使用 readdir() 函数循环读取文件夹中的条目。
  4. 对于每个读取到的条目,检查其类型,如果是文件,可以进行相应的操作,比如打印文件名。
  5. 继续循环,直到 readdir() 返回空指针,表示已经读取完所有条目。
  6. 使用 closedir() 函数关闭文件夹。

示例代码如下:

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

void traverseDirectory(const char* path) {
    DIR* directory = opendir(path);
    if (directory == NULL) {
        printf("Failed to open directory: %s\n", path);
        return;
    }

    struct dirent* entry;
    while ((entry = readdir(directory)) != NULL) {
        if (entry->d_type == DT_REG) {  // 判断是否是普通文件
            printf("File: %s\n", entry->d_name);
            // 在这里可以对文件进行操作,比如读取内容等
        }
    }

    closedir(directory);
}

int main() {
    const char* path = "/path/to/directory";  // 替换为你的目标文件夹路径
    traverseDirectory(path);

    return 0;
}

方法二:使用递归函数

步骤:

  1. 包含头文件 <dirent.h> 和 <stdio.h>
  2. 定义一个递归函数,接收一个文件夹路径作为参数。
  3. 在递归函数中,打开目标文件夹,使用 opendir() 函数。该函数返回一个指向 DIR 结构的指针。
  4. 使用 readdir() 函数循环读取文件夹中的条目。
  5. 对于每个读取到的条目,检查其类型,如果是文件夹,则递归调用该函数,传入当前文件夹的路径。
  6. 如果是文件,可以进行相应的操作,比如打印文件名。
  7. 继续循环,直到 readdir() 返回空指针,表示已经读取完所有条目。
  8. 使用 closedir() 函数关闭文件夹。

示例代码如下:

以上两种方法都可以实现遍历文件夹下的所有文件。方法一使用了标准库函数,较为简单直接;方法二使用递归函数,可以递归地遍历多层文件夹,更加灵活。你可以根据实际需求选择合适的方法。记得将代码中的/path/to/directory替换为你要遍历的目标文件夹的路径。

c# 判断字符串中是否包含某个字符串高效查找位置代码示例分享(图文详解1)

点击展开

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝