用cplusplus11实现获取文件夹里所有文件列表,区分文件路径和文件名称
时间: 2023-06-01 11:03:48 浏览: 55
以下是使用C++11实现获取文件夹里所有文件列表,区分文件路径和文件名称的示例代码:
```c++
#include <iostream>
#include <filesystem>
#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_directory()) // 如果是文件夹
{
std::cout << "Directory: " << entry.path() << std::endl; // 输出文件夹路径
}
else // 如果是文件
{
std::cout << "File: " << entry.path().filename() << std::endl; // 输出文件名称
std::cout << "Path: " << entry.path().parent_path() << std::endl; // 输出文件路径
}
}
return 0;
}
```
首先,我们使用`std::filesystem`来处理文件系统操作。在循环中,使用`fs::directory_iterator`迭代器获取文件夹中的每个文件或子文件夹。然后,使用`entry.is_directory()`判断当前项是否是文件夹。如果是,输出当前项的路径。如果不是,输出当前项的文件名和文件所在路径。