通过System.IO访问文件,而路径中的文件夹是快捷方式

时间:2013-09-05 09:29:12

标签: c# windows-8 64-bit windows-server-2008

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

示例:

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);始终返回null。有什么建议吗?

0 个答案:

没有答案