Possible Duplicate:
Get target of shortcut folder
For example, in C:\TEMP\ I have a shortcut called test.dll the shortcut will lead to the file name test.dll
I want to get from the shortcut only the path name to the file it self. So, I'm calling this function in another recursive function and put in this function each time another directory from my hard disk.
For example, the first directory is C:\TEMP then in C:\TEMP there is the shortcut file which I want to get the path only to the file. In C:\TEMP for the test I have now 3 files :
hpwins23.dat
hpwmdl23.dat
hpwmdl23.dat -Shortcut(C:\TEMP\hpwmdl23.dat)
So, what I want to get is the path name of the shortcut in this case its C:\TEMP
I tried to use this function:
public string GetShortcutTargetFile(string shortcutFilename)
{
string pathOnly = System.IO.Path.GetDirectoryName(shortcutFilename);
string filenameOnly = System.IO.Path.GetFileName(shortcutFilename);
Shell shell = new Shell();
Folder folder = shell.NameSpace(pathOnly);
if (folder == null)
{
}
else
{
FolderItem folderItem = folder.ParseName(filenameOnly);
if (folderItem != null)
{
Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
return link.Path;
}
}
return string.Empty;
}
but when I'm using the function and its getting to a shortcut I'm getting exception error on the line:
Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink //The exception is: NotImplementedException: The method or operation is not implemented
What shoud I do to solve it ?
This is the full exception error message:
System.NotImplementedExceptionwas caught
Message=The method or operation is not implemented.
Source=GatherLinks
StackTrace:
atShell32.FolderItem.get_GetLink()
atGatherLinks.Form1.GetShortcutTargetFile(String shortcutFilename)in
D:\C-Sharp\GatherLinks\GatherLinks\GatherLinks\Form1.cs:line904
atGatherLinks.Form1.offlinecrawling