C#中是否可以通过编程方式确定是否已找到链接目标?

时间:2018-09-27 02:13:47

标签: c# desktop-shortcut

我想以编程方式确定是否已从C#找到链接目标。使用代码link.Resolve(SLR_FLAGS.SLR_UPDATE)会出现一个对话框,提示找不到链接目标,并提供删除快捷方式的选项。

用于生成链接的代码是

Type t = Type.GetTypeFromProgID("Shell.Application");
dynamic shell = Activator.CreateInstance(t);
var folder = shell.NameSpace(pathOnly);
var folderItem = folder.ParseName(filenameOnly);

string sAbsPath = "";
if (folderItem != null)
{
   (Shell32.ShellLinkObject)folderItem.GetLink;
    var link = folderItem.GetLink;
 }

如果我添加了使用link.Resolve(SLR_FLAGS.SLR_UPDATE|SLR_FLAGS_NO_UI)禁止显示UI的选项,则会采用不删除快捷方式的选项,并且link.Path仍指向未找到其位置的文件。在这种情况下,链接对象似乎没有指示未找到链接目标的属性。有人知道这样做的方法吗?

0 个答案:

没有答案