C++从文件路径中获取文件名,文件路径是vector类型
时间: 2023-07-15 20:13:57 浏览: 141
可以使用C++标准库中的文件操作函数和字符串操作函数来获取文件名。
假设文件路径是一个`vector<string>`类型的变量`filePaths`,可以通过以下步骤获取文件名:
1. 使用标准库中的`<fstream>`头文件中的`ifstream`类打开文件,如下所示:
```cpp
ifstream file(filePaths[0]);
```
这里假设我们要获取`filePaths`中的第一个文件的文件名。
2. 使用`<string>`头文件中的`std::string`类的成员函数`find_last_of()`和`substr()`来获取文件名,如下所示:
```cpp
string fileName = filePaths[0].substr(filePaths[0].find_last_of("/\\") + 1);
```
这里我们假设文件路径中使用的是Unix或Windows的路径分隔符,即`/`或`\`。`find_last_of()`函数返回最后一个路径分隔符的位置,然后使用`substr()`函数截取文件名部分。
完整代码示例如下:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<string> filePaths = { "path/to/file.txt", "path/to/another/file.png" };
ifstream file(filePaths[0]);
if (!file.is_open())
{
cout << "Failed to open file." << endl;
return -1;
}
string fileName = filePaths[0].substr(filePaths[0].find_last_of("/\\") + 1);
cout << "File name: " << fileName << endl;
return 0;
}
```
输出结果为:
```
File name: file.txt
```
阅读全文