我已使用 CreateSymbolicLink 功能在我们的应用程序中添加了对Windows符号链接的支持。我们的应用程序将数据存储在一组实际文件夹中。我们的用户需要在一个主根文件夹之外存储一些文件夹。我们选择的解决方案是符号链接。这使他们可以做一些事情,比如在DropBox中保留数据子集或存储在网络驱动器上。到目前为止,一切都很好。
使用Windows资源管理器时,如果链接目标不存在,Windows将显示以下消息。这可能是由重命名目标或远程网络驱动器不可用引起的。
位置不可用 C:... \ MyLink指的是一个位置 不可用。它可以在这台计算机上的硬盘上,也可以在 网络。检查以确保磁盘已正确插入,或 您已连接到Internet或网络,然后尝试 再次。如果仍无法找到,则可能是信息 搬到了另一个地方。
我正在尝试复制此检查并添加目标位置,以便用户可以判断为什么没有数据。
存在普通目录检查是不够的,因为系统上存在符号链接。我通过调用CreateFile打开文件夹来解决这个问题。这会导致打开目标位置而不是符号链接。根据我的检查需要,这确实失败了。现在我被困在试图获得链接所指向的目标路径。
我发现这回答Stack Overflow问题,用于从符号链接读取目标位置 - How do I programmatically access the target path of a windows symbolic link?
但是,该答案需要一个有效的句柄来打开目录。在我的情况下,我想找到一个断开链接的名称,以帮助解决问题并修复链接。
如何在没有有效句柄的情况下获取符号链接的目标位置?