如何检查指向目录的符号链接?


$ ls -l
total 4
drwxr-xr-x 2 t domain users 4096 Nov 3 17:55 original
lrwxrwxrwx 1 t domain users    8 Nov 3 17:56 symbolic -> original

这里的symbol是指向原始文件夹的符号链接。

原文件夹的内容。

$ ls -l original/
total 8
-rw-r--r-- 2 t domain users 4096  Nov  3 17:55 mydoc.docx 

我的代码中有一个文件路径,如:

std::string fileName = "/home/Downloads/symbolic/mydoc.docx";
path filePath(fileName);

如何检查fileName是否为符号链接?

is_symlink(filePath)返回false, read_symlink(filePath)返回空路径。我想使用规范,只有当它是符号链接。这样的:

if(is_symlink(filePath)) --> This is returning false.Any other alternative ?
{
newFilePath = canonical(filePath);
}

根据手册页,is_symlink需要一个filesystem::path作为参数,而不是std::string。你可以试试。

相关内容

  • 没有找到相关文章

最新更新