1

我使用CreateSymbolicLink函数在我们的应用程序中添加了对 Windows 符号链接的支持。我们的应用程序将数据存储在一组实际文件夹中。我们的用户需要在一个主根文件夹之外存储一些文件夹。我们选择的解决方案是符号链接。这让他们可以做一些事情,比如将一部分数据保存在 DropBox 中或存储在网络驱动器上。到目前为止,一切都运行良好。

使用 Windows 资源管理器时,如果链接目标不存在,Windows 将显示以下消息。这可能是由于目标被重命名或远程网络驱动器不可用造成的。

位置不可用
C:...\MyLink 指的是不可用的位置。它可能位于这台计算机的硬盘驱动器上,也可能位于网络上。检查以确保磁盘已正确插入,或者您已连接到 Internet 或您的网络,然后重试。如果仍然无法找到,则信息可能已移至其他位置。

我正在尝试复制此检查并添加目标位置,以便用户知道为什么没有数据存在。

正常的目录存在检查是不够的,因为系统上存在符号链接。我通过调用 CreateFile 打开文件夹来解决这个问题。这会导致打开目标位置而不是符号链接。根据我的检查需要,这确实失败了。现在我被困在试图获取链接指向的目标路径。

我发现这个已回答的 Stack Overflow 问题,用于从符号链接读取目标位置。
-如何以编程方式访问 Windows 符号链接的目标路径?

但是,该答案需要打开目录的有效句柄。就我而言,我想找到损坏链接的名称,以帮助解决问题并修复链接。

如何在没有有效句柄的情况下获取符号链接的目标位置?

4

0 回答 0