$ 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。你可以试试。