QFileInfo找快捷方式的原指向

使用QFileInfo的symLinkTarget接口找快捷方式的原指向。

接口

  • exists判断文件是否存在;
  • isSymLink判断是否为快捷方式,注意:在Windows系统下路径后缀以*.lnk结尾都会被判断为快捷方式(无论该文件是否存在);
  • symLinkTarget返回快捷方式的原指向

示例

  • 先判断文件是否存在,再判断是否是快捷方式。
    1
    2
    3
    QFileInfo info("C:/Document/text.lnk");
    if (info.exists() && info.isSymLink())
    qDebug()<<"Source Path: "<<info.symLinkTarget();

不正确的示例

  • C:/Document/text.lnk快捷方式不存在时,由于没有判断文件存在,最终会打印一个空的字符串。
    1
    2
    3
    QFileInfo info("C:/Document/text.lnk");
    if (info.isSymLink())
    qDebug()<<"Source Path: "<<info.symLinkTarget();