用c语言编写打开对应文件夹,读取文件夹里的文件名,并传给客户端(opendir+readdir)
时间: 2024-10-15 13:17:53 浏览: 48
在C语言中,你可以使用标准库函数`opendir()`、`readdir()` 和 `closedir()` 来遍历目录并读取文件名。这里是一个简单的示例,展示了如何实现这个功能:
```c
#include <stdio.h>
#include <dirent.h>
#include <string.h>
void list_files_in_directory(const char *dir_path, void (*callback)(const char *)) {
DIR *dir = opendir(dir_path);
if (dir == NULL) {
perror("Failed to open directory");
return;
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 如果不是目录,忽略它
if (!S_ISDIR(entry->d_type)) {
callback(entry->d_name); // 调用用户提供的回调函数处理文件名
}
}
closedir(dir);
}
// 用户可以自定义的回调函数,用于处理每个文件名
void print_file_name(const char *filename) {
printf("File name: %s\n", filename);
}
int main() {
const char *folder_path = "/path/to/your/directory"; // 替换为你想读取的实际路径
// 使用我们的函数列出文件名并打印
list_files_in_directory(folder_path, print_file_name);
return 0;
}
```
在这个示例中,`list_files_in_directory` 函数接受一个目录路径和一个回调函数作为参数,`readdir()` 会逐个返回目录中的条目。如果条目表示一个文件而不是目录,就调用回调函数处理文件名。
注意,你需要替换 `folder_path` 为你实际想要读取的目录路径。另外,这里的回调函数仅简单地打印文件名,实际应用中可以根据需求修改该回调。
阅读全文