linux c++ 读取指定目录下的所有文件
时间: 2023-09-12 11:08:50 浏览: 388
linux c++ 获取目录下所有文件
你可以使用标准库中的 dirent.h 和 sys/stat.h 来读取指定目录下的所有文件。下面是一个示例代码:
```cpp
#include <iostream>
#include <dirent.h>
#include <sys/stat.h>
int main() {
std::string dirPath = "/path/to/your/directory"; // 指定目录的路径
DIR* dir = opendir(dirPath.c_str()); // 打开目录
if (!dir) {
std::cout << "无法打开目录" << std::endl;
return 1;
}
struct dirent* entry;
while ((entry = readdir(dir)) != nullptr) { // 遍历目录中的文件
std::string fileName = entry->d_name; // 文件名
// 忽略当前目录和上级目录
if (fileName == "." || fileName == "..") {
continue;
}
std::string filePath = dirPath + "/" + fileName; // 文件的完整路径
struct stat fileStat;
if (stat(filePath.c_str(), &fileStat) == -1) { // 获取文件信息
std::cout << "无法获取文件信息:" << fileName << std::endl;
continue;
}
if (S_ISREG(fileStat.st_mode)) { // 判断是否为普通文件
std::cout << fileName << std::endl;
}
}
closedir(dir); // 关闭目录
return 0;
}
```
你需要将 `/path/to/your/directory` 替换为实际的目录路径。上述代码将遍历指定目录下的所有文件,并输出文件名。你可以根据需要修改代码,进行进一步的处理。
阅读全文