std::string currentPath = __FILE__; auto path = std::filesystem::path(currentPath).parent_path();获取到对应Release//x64
时间: 2024-09-12 15:12:08 浏览: 46
Linux_Root_filesystem.rar_ROOT_filesystem包_linux root system_mkr
在C++17及更高版本中,你可以使用C++标准库中的`std::filesystem`模块来处理文件和目录路径。当你有一个文件路径(例如`__FILE__`常量),可以先将它转换成`std::filesystem::path`对象,然后通过`parent_path()`函数获取其父路径,再进一步确定是否包含`Release`和`x64`这些子路径。
以下是一个例子,展示了如何做到这一点:
```cpp
#include <iostream>
#include <filesystem>
int main() {
std::string currentPath = __FILE__; // 获取当前文件的完整路径
auto path = std::filesystem::path(currentPath);
// 跳过当前文件名
while (!path.has_parent_path()) {
path.pop_back();
}
// 检查是否在 Release 和 x64 目录下
if (path.filename() == "Release" && path.parent_path().filename() == "x64") {
std::cout << "Found the 'Release/x64' directory." << std::endl;
} else {
std::cout << "Not in the 'Release/x64' directory." << std::endl;
}
return 0;
}
```
这段代码首先获取`__FILE__`的路径,然后不断向上跳过路径元素直到找到一个父目录,接着检查最后一个路径元素是否为"Release",再检查父路径的最后一个元素是否为"x64"。
阅读全文