Функция current_path
Функция current_path из библиотеки filesystem
возвращает текущий рабочий каталог в виде объекта
std::filesystem::path. Если передать в неё
аргумент, то она установит текущий рабочий каталог
в указанный путь. В первый параметр мы передаем новый
путь, который нужно сделать текущим. Второй параметр
(необязательный) принимает объект ошибки
std::error_code, в который будет записана
информация об ошибке, если она произойдет.
Синтаксис
path current_path();
path current_path(error_code& ec);
void current_path(const path& p);
void current_path(const path& p, error_code& ec);
Пример
Давайте получим текущий рабочий каталог и выведем его на экран:
#include <iostream>
#include <filesystem>
using namespace std;
using namespace std::filesystem;
int main()
{
path res = current_path();
cout << res << endl;
return 0;
}
Результат выполнения кода:
"/home/user/project"
Пример
Давайте установим новый текущий рабочий каталог
в /var/www и проверим результат:
#include <iostream>
#include <filesystem>
using namespace std;
using namespace std::filesystem;
int main()
{
current_path("/var/www");
path res = current_path();
cout << res << endl;
return 0;
}
Результат выполнения кода:
"/var/www"
Пример
Давайте попробуем установить несуществующий каталог
и обработаем ошибку через объект
error_code:
#include <iostream>
#include <filesystem>
using namespace std;
using namespace std::filesystem;
int main()
{
error_code ec;
current_path("/nonexistent/path", ec);
if (ec) {
cout << "Error: " << ec.message() << endl;
} else {
cout << "Success" << endl;
}
return 0;
}
Результат выполнения кода:
"Error: No such file or directory"
Смотрите также
-
класс
path,
который представляет путь к файлу или каталогу -
функция
absolute,
которая возвращает абсолютный путь -
функция
canonical,
которая возвращает канонический путь -
функция
temp_directory_path,
которая возвращает путь к каталогу временных файлов