Функция create_symlink
Функция create_symlink создает
символическую ссылку (symlink) на существующий
файл или директорию. Первым параметром
функция принимает путь, на который будет
указывать ссылка, а вторым - путь, по
которому следует создать саму ссылку.
В качестве третьего необязательного параметра
можно передать объект ошибки.
Символическая ссылка - это специальный файл, который содержит путь к другому файлу или директории. При обращении к ссылке операционная система перенаправляет запрос на целевой объект.
Синтаксис
void create_symlink(const path& target, const path& link);
void create_symlink(const path& target, const path& link, error_code& ec);
Пример
Давайте создадим символическую ссылку
"link.txt", которая будет указывать
на файл "abcde.txt":
#include <iostream>
#include <filesystem>
#include <fstream>
using namespace std;
namespace fs = std::filesystem;
int main()
{
ofstream("abcde.txt") << "hello";
fs::create_symlink("abcde.txt", "link.txt");
cout << fs::is_symlink("link.txt") << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте создадим символическую ссылку на директорию и проверим, куда она указывает:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::create_directory("mydir");
fs::create_symlink("mydir", "linkdir");
cout << fs::is_symlink("linkdir") << endl;
cout << fs::is_directory("linkdir") << endl;
return 0;
}
Результат выполнения кода:
1
1
Пример
Давайте создадим символическую ссылку с использованием объекта ошибки, чтобы избежать исключения при неудаче:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
error_code ec;
fs::create_symlink("abcde.txt", "link2.txt", ec);
if (ec) {
cout << "Error: " << ec.message() << endl;
} else {
cout << "Symlink created" << endl;
}
return 0;
}
Результат выполнения кода:
"Symlink created"
Смотрите также
-
функция
is_symlink,
которая проверяет, является ли путь символической ссылкой -
функция
remove,
которая удаляет файл или символическую ссылку -
функция
canonical,
которая возвращает канонический путь -
функция
equivalent,
которая проверяет эквивалентность двух путей