この関数を使用しようとしていますが、いくつかのエラーが発生しています:
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);
FolderItem folderItem = folder.ParseName(filenameOnly);
if (folderItem != null)
{
Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
return link.Path;
}
return string.Empty;
}
static void Main(string[] args)
{
const string path = @"C:\link to foobar.lnk";
Console.WriteLine(GetShortcutTargetFile(path));
}
最初のエラーは次の行にあります。
Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
行 (Shell32.ShellLinkObject)folderItem.GetLink の右側にエラーが発生しています:
Error 2 One or more types required to compile a dynamic expression cannot be found. Are you missing references to Microsoft.CSharp.dll and System.Core.dll?
そして最後の行で:
Console.WriteLine(GetShortcutTargetFile(path));
エラーは次のとおりです: GetShortcutTargetFile(path) 関数は静的でしたが、静的を削除してから、最後の行でエラーを取得しました。
Error 4 An object reference is required for the non-static field, method, or property 'GatherLinks.Form1.GetShortcutTargetFile(string)
すべてのエラーを修正し、ファイルを対象とするすべてのショートカットを取得するにはどうすればよいですか?