【发布时间】:2021-09-30 02:36:30
【问题描述】:
我正在编写一个 C++ 程序,在其中我使用std::filesystem::current_path(working_directory) 更改工作目录,其中working_directory 是一个字符串。有没有一种好方法可以在程序的后期将工作目录重置为其原始值?我知道一种解决方案是在更改工作目录之前使用变量string initial_directory = std::filesystem::current_path(),然后使用std::filesystem::current_path(initial_directory) 重置它,但我觉得应该有一个更优雅的解决方案。
谢谢!
【问题讨论】:
-
保存并重新设置是我知道的唯一方法。
-
我不知道文件系统中的任何内容都可以执行您想要的操作并且不希望它存在。 C++ 的政策是不让您为不需要的东西付费,并且缓存工作目录的原始值以便以后可以恢复,这将是所有文件系统用户都必须支付的费用,无论他们是否需要它与否。可能有一个特定于目标的 API 调用可以执行此操作,但为了可移植性,缓存原始值并根据需要恢复它似乎是最明智的选择。
标签: c++ directory std-filesystem