std::experimental::filesystem:: canonical
|
Определено в заголовочном файле
<experimental/filesystem>
|
||
|
path canonical
(
const
path
&
p,
const
path
&
base
=
current_path
(
)
)
;
|
(1) | (filesystem TS) |
|
path canonical
(
const
path
&
p, error_code
&
ec
)
;
|
(2) | (filesystem TS) |
|
path canonical
(
const
path
&
p,
const
path
&
base, error_code
&
ec
)
;
|
(3) | (filesystem TS) |
Преобразует путь p в канонический абсолютный путь, т.е. абсолютный путь, не содержащий элементов точка, точка-точка или символических ссылок.
Если p не является абсолютным путем, функция ведет себя так, как если бы он сначала был преобразован в абсолютный с помощью absolute ( p, base ) или absolute ( p ) для (2) .
Путь p должен существовать.
Содержание |
Параметры
| p | - | путь, который может быть абсолютным или относительным к base , и который должен существовать |
| base | - | базовый путь, используемый в случае, если p является относительным |
| ec | - | код ошибки для сохранения статуса ошибки |
Возвращаемое значение
Абсолютный путь, который разрешается в тот же файл, что и absolute ( p, base ) (или absolute ( p ) для (2) ).
Исключения
The overload that does not take an error_code & parameter throws filesystem_error on underlying OS API errors, constructed with p as the first argument, base as the second argument, and the OS error code as the error code argument. std:: bad_alloc may be thrown if memory allocation fails. The overload taking an error_code & parameter sets it to the OS API error code if an OS API call fails, and executes ec. clear ( ) if no errors occur. This overload hasЭта функция создана по образцу POSIX-функции realpath .
Пример
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p = fs::path("..") / ".." / "AppData"; std::cout << "Current path is " << fs::current_path() << '\n' << "Canonical path for " << p << " is " << fs::canonical(p) << '\n'; }
Возможный вывод:
Current path is "C:\Users\abcdef\AppData\Local\Temp" Canonical path for "..\..\AppData" is "C:\Users\abcdef\AppData"
Смотрите также
|
представляет путь
(класс) |
|
|
формирует абсолютный путь
преобразует путь в абсолютный путь, повторяя поведение, специфичное для ОС (функция) |