Функция is_symlink
Функция is_symlink проверяет, указывает ли путь на символическую ссылку. В первый параметр мы передаем путь для проверки, который может быть представлен объектом path, строкой или другим совместимым типом. Функция возвращает true, если путь является символической ссылкой, и false в противном случае.
Синтаксис
bool is_symlink(const std::filesystem::path& p);
Пример
Давайте создадим символическую ссылку и проверим, является ли она таковой:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path target = "target.txt";
fs::path link = "link.txt";
// Create a regular file and a symlink to it
fs::create_directory("test_dir");
fs::path dir = "test_dir";
fs::path file_path = dir / target;
fs::path link_path = dir / link;
ofstream(file_path) << "hello";
fs::create_symlink(file_path, link_path);
cout << boolalpha;
cout << "Is link a symlink? " << fs::is_symlink(link_path) << endl;
cout << "Is file a symlink? " << fs::is_symlink(file_path) << endl;
fs::remove_all(dir);
return 0;
}
Результат выполнения кода:
"Is link a symlink? true"
"Is file a symlink? false"
Пример
Давайте проверим несуществующий путь:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "nonexistent.txt";
cout << boolalpha;
cout << "Is nonexistent a symlink? " << fs::is_symlink(p) << endl;
return 0;
}
Результат выполнения кода:
"Is nonexistent a symlink? false"
Смотрите также
-
функция
create_symlink,
которая создает символическую ссылку -
функция
is_regular_file,
которая проверяет, является ли путь обычным файлом -
функция
is_directory,
которая проверяет, является ли путь директорией -
функция
exists,
которая проверяет существование пути