std::filesystem::current_path

来自cppreference.com
 
 
 
在标头 <filesystem> 定义
path current_path();
(1) (C++17 起)
path current_path(std::error_code& ec );
(2) (C++17 起)
void current_path(conststd::filesystem::path& p );
(3) (C++17 起)
void current_path(conststd::filesystem::path& p,
                   std::error_code& ec )noexcept;
(4) (C++17 起)

返回或更改当前路径。

1,2) 返回当前工作目录的绝对路径,如同通过 POSIX getcwd 取得(以原生格式)。若错误发生则 (2) 返回 path()
3,4) 更改当前工作目录到 p,如同通过 POSIX chdir

目录

[编辑]参数

p - 更改当前工作目录所到的路径
ec - 不抛出重载中报告错误的输出形参

[编辑]返回值

1,2) 返回当前工作目录。
3,4) (无)

[编辑]异常

若内存分配失败,则任何不标记为 noexcept 的重载可能抛出 std::bad_alloc

1) 抛出 std::filesystem::filesystem_error,构造时以 OS 错误码为错误码实参。
2) 若 OS API 调用失败,则设置 std::error_code& 为 OS API 错误码,而未发生错误时则执行 ec.clear()
3) 抛出 std::filesystem::filesystem_error,构造时以 p 为第一路径实参并以OS 错误码为错误码实参。
4) 若 OS API 调用失败,则设置 std::error_code& 为 OS API 错误码,而未发生错误时则执行 ec.clear()

[编辑]注解

当前工作目录是与进程关联的目录,它被用作相对路径的路径名解析中的起始位置。

许多操作系统返回的当前路径是危险的全局变量。第三方或系统库函数,或另一线程可能未经期待地更改它。

[编辑]示例

#include <filesystem>#include <iostream>namespace fs = std::filesystem;   int main(){std::cout<<"当前路径为 "<< fs::current_path()<<'\n';// (1) fs::current_path(fs::temp_directory_path());// (3)std::cout<<"当前路径为 "<< fs::current_path()<<'\n';}

可能的输出:

当前路径为 "D:/local/ConsoleApplication1" 当前路径为 "E:/Temp"

[编辑]参阅

返回一个适用于临时文件的目录
(函数)[编辑]
close