C++遍历一个文件夹中所有文件名
时间: 2023-07-04 12:15:42 浏览: 489
遍历一个文件夹中所有文件名也可以使用 C++17 中的 `filesystem` 库。以下是一个示例代码,假设需要遍历的文件夹路径为 `path/to/folder`:
```c++
#include <filesystem>
#include <iostream>
#include <string>
namespace fs = std::filesystem;
int main() {
std::string folder_path = "path/to/folder";
for (const auto& entry : fs::directory_iterator(folder_path)) {
if (entry.is_regular_file()) {
std::cout << entry.path().filename().string() << '\n';
// 在这里可以对文件进行处理
}
}
return 0;
}
```
这段代码会遍历 `folder_path` 文件夹中的所有文件和子文件夹,如果遇到一个文件,就会将它的文件名打印出来。在这里你可以对文件进行处理。需要注意的是,这段代码需要使用 C++17 标准编译,你需要在编译器中加入 `-std=c++17` 参数。
相关问题
c++遍历文件夹中的文件名
在C++中,遍历文件夹中的文件名通常需要使用一些操作系统特定的功能,如Windows下的`FindFirstFile`函数或者POSIX系统下的`opendir`, `readdir`等库函数。这里提供一种基于`<filesystem>`库的方法,适用于C++17及以上版本:
```cpp
#include <iostream>
#include <filesystem>
void listFilesInDirectory(std::string directoryPath) {
for (const auto &entry : std::filesystem::directory_iterator(directoryPath)) {
if (!entry.is_directory()) { // 只列出文件,忽略目录
std::cout << entry.path().filename() << "\n"; // 文件名
}
}
}
int main() {
try {
std::string dirToSearch = "path_to_your_directory";
listFilesInDirectory(dirToSearch);
} catch (std::filesystem::filesystem_error &e) {
std::cerr << "Error occurred: " << e.what() << '\n';
}
return 0;
}
```
在这个例子中,`listFilesInDirectory`函数接受一个路径作为参数,然后使用`directory_iterator`遍历该目录中的每个元素。如果元素不是目录,则获取其文件名并打印出来。
C++如何遍历一个文件夹中的文件
在C语言中,可以使用 dirent.h 头文件提供的函数来遍历一个文件夹中的文件。具体步骤如下:
1. 打开文件夹,使用 opendir() 函数,该函数会返回一个 DIR* 类型的指针,该指针指向打开的文件夹。
2. 使用 readdir() 函数,该函数会返回下一个文件或子文件夹的指针。每次调用该函数都会返回文件夹中的下一个文件或子文件夹,直到返回 NULL 为止。
3. 对于每个文件或子文件夹,使用 stat() 函数获取文件信息,例如文件名、文件大小等。
4. 处理完一个文件或子文件夹后,继续调用 readdir() 函数获取下一个文件或子文件夹,直到返回 NULL。
下面是一个遍历文件夹的示例代码:
```c
#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h>
int main(void) {
DIR *dir;
struct dirent *entry;
struct stat filestat;
dir = opendir(".");
if (dir == NULL) {
printf("Failed to open directory.\n");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
if (entry->d_type == DT_REG) { // 判断是否为普通文件
printf("File name: %s\n", entry->d_name);
stat(entry->d_name, &filestat);
printf("File size: %ld bytes\n", filestat.st_size);
}
}
closedir(dir);
return 0;
}
```
该代码会打开当前目录并遍历其中的所有普通文件,输出文件名和文件大小。需要注意的是,为了获取文件信息,需要使用 stat() 函数,并传入文件名作为参数。
阅读全文