std::filesystem 把 .转换成绝对路径
时间: 2023-12-14 15:02:39 浏览: 176
可以使用`std::filesystem::absolute()`函数将相对路径转换为绝对路径。例如:
```cpp
#include <iostream>
#include <filesystem>
int main() {
std::filesystem::path rel_path = "path/to/file.txt";
std::filesystem::path abs_path = std::filesystem::absolute(rel_path);
std::cout << "Absolute path: " << abs_path << std::endl;
return 0;
}
```
在上面的示例中,`std::filesystem::path`类用于表示路径,`rel_path`是一个相对路径,使用`std::filesystem::absolute()`函数将其转换为绝对路径,并将结果存储在`abs_path`中。最后,我们输出了绝对路径。
相关问题
std::filesystem::path abs_path = std::filesystem::absolute("."); std::cout << "Absolute path: " << abs_path << std::endl; 获取的绝对路径最后有一个.
获取的绝对路径最后有一个点号是因为你使用的是相对路径"."。在使用`std::filesystem::absolute`函数时,如果传入的是相对路径,则该函数会将其转换为绝对路径。此时,绝对路径中最后一个目录名就是当前目录,即"."。如果你不想显示这个点号,可以使用`std::filesystem::canonical`函数,该函数会返回规范化的绝对路径,即去掉冗余的部分。例如:
```
std::filesystem::path abs_path = std::filesystem::canonical(".");
std::cout << "Canonical path: " << abs_path << std::endl;
```
这样输出的绝对路径就不会包含点号了。
std::filesystem::copy_file(std::filesystem::path(filePath.toLocal8Bit().toStdString()), std::filesystem::path(destPath.toLocal8Bit().toStdString()), std::filesystem::copy_options::overwrite_existing);
这是一段 C++ 17 代码,使用了文件系统库中的 `copy_file` 函数,将指定路径的文件复制到另一个指定路径。其中 `filePath` 和 `destPath` 是文件路径的字符串表示形式,需要转换为 `std::filesystem::path` 类型。`copy_options::overwrite_existing` 表示如果目标路径已经存在同名文件,则覆盖它。
阅读全文