我必须创建一个文件,文件的路径包含一个实际上是快捷方式的文件夹。
示例:
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。有什么建议吗?