如何显示不可用的符号链接的目标名称?

时间:2012-04-27 03:50:08

标签: windows winapi symlink

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

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

  

位置不可用   C:... \ MyLink指的是一个位置   不可用。它可以在这台计算机上的硬盘上,也可以在   网络。检查以确保磁盘已正确插入,或   您已连接到Internet或网络,然后尝试   再次。如果仍无法找到,则可能是信息   搬到了另一个地方。

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

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

我发现这回答Stack Overflow问题,用于从符号链接读取目标位置   - How do I programmatically access the target path of a windows symbolic link?

但是,该答案需要一个有效的句柄来打开目录。在我的情况下,我想找到一个断开链接的名称,以帮助解决问题并修复链接。

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

0 个答案:

没有答案