3

我必须创建一个文件,该文件的路径包含一个实际上是快捷方式的文件夹。

例子:

D:\SQL Backups\LocumsExcite_04-Sep-2013 16-36-59-135.bak

SQL Backups文件夹是D:驱动器中的快捷方式。快捷方式将我们带到C:\Users\Administrator\Dropbox\SQL Backups\文件夹

我到处查看 Shell 示例,但它对我不起作用。

public static string GetShortcutTarget(string shortcutFilename)
    {
        string pathOnly = System.IO.Path.GetDirectoryName(shortcutFilename);
        string filenameOnly = System.IO.Path.GetFileName(shortcutFilename);

        Shell32.Shell shell = new Shell32.ShellClass();
        Shell32.Folder folder = shell.NameSpace(pathOnly);
        Shell32.FolderItem folderItem = folder.ParseName(filenameOnly);

        if (folderItem != null)
        {
            if (folderItem.IsLink)
            {
                Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
                return link.Path;
            }
            return shortcutFilename;
        }
        return "";  // not found
    }

该行shell.NameSpace(pathOnly);始终返回空值。有什么建议么?

4

0 回答 0