获取文件路径、文件名和文件后缀可以使用C++的string类和标准库中的一些函数来实现。下面是两种方式的详细攻略:
方式一:使用C++标准库函数
- 首先,包含必要的头文件:
#include <iostream>
#include <string>
#include <filesystem>
- 使用
std::filesystem::path
类创建一个路径对象,并将文件路径作为参数传递给它:
std::filesystem::path filePath(\"path/to/file.txt\");
- 获取文件路径:
std::string directory = filePath.parent_path().string();
- 获取文件名:
std::string fileName = filePath.filename().string();
- 获取文件后缀:
std::string extension = filePath.extension().string();
下面是一个完整的示例代码:
#include <iostream>
#include <string>
#include <filesystem>
int main() {
std::filesystem::path filePath(\"path/to/file.txt\");
std::string directory = filePath.parent_path().string();
std::string fileName = filePath.filename().string();
std::string extension = filePath.extension().string();
std::cout << \"Directory: \" << directory << std::endl;
std::cout << \"File Name: \" << fileName << std::endl;
std::cout << \"Extension: \" << extension << std::endl;
return 0;
}
方式二:使用C++字符串处理函数
- 首先,包含必要的头文件:
#include <iostream>
#include <string>
- 创建一个字符串变量并将文件路径赋值给它:
std::string filePath = \"path/to/file.txt\";
- 获取文件路径:
std::string directory = filePath.substr(0, filePath.find_last_of(\"/\\\\\"));
- 获取文件名:
std::string fileName = filePath.substr(filePath.find_last_of(\"/\\\\\") + 1);
- 获取文件后缀:
std::string extension = filePath.substr(filePath.find_last_of(\".\") + 1);
下面是一个完整的示例代码:
#include <iostream>
#include <string>
int main() {
std::string filePath = \"path/to/file.txt\";
std::string directory = filePath.substr(0, filePath.find_last_of(\"/\\\\\"));
std::string fileName = filePath.substr(filePath.find_last_of(\"/\\\\\") + 1);
std::string extension = filePath.substr(filePath.find_last_of(\".\") + 1);
std::cout << \"Directory: \" << directory << std::endl;
std::cout << \"File Name: \" << fileName << std::endl;
std::cout << \"Extension: \" << extension << std::endl;
return 0;
}
以上两种方式都可以用来获取文件路径、文件名和文件后缀。方式一使用了C++标准库中的std::filesystem
,提供了更多的功能和灵活性,而方式二则使用了C++字符串处理函数,更加简洁。根据实际需求选择适合的方式即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ string如何获取文件路径文件名、文件路径、文件后缀(两种方式) - Python技术站