次のコードにより、lnk ファイルを読み取ることができます。
あまり意味がありません。簡単に確認する方法がありません。最善の方法は、.lnk ファイルを本来の方法で読み取ることだと思います。これには COM を使用できます。ShellLinkObject クラスは IShellLink インターフェイスを実装します。[プロジェクト] + [参照の追加] の [参照] タブで開始し、c:\windows\system32\shell32.dll に移動します。これにより、相互運用ライブラリが生成されます。次のようなコードを記述します。
public static string GetLnkTarget(string lnkPath) {
var shl = new Shell32.Shell(); // Move this to class scope
lnkPath = System.IO.Path.GetFullPath(lnkPath);
var dir = shl.NameSpace(System.IO.Path.GetDirectoryName(lnkPath));
var itm = dir.Items().Item(System.IO.Path.GetFileName(lnkPath));
var lnk = (Shell32.ShellLinkObject)itm.GetLink;
return lnk.Target.Path;
}
次に、次のコードを使用して独自のフォルダーに保存するだけです
First include a reference to C:\Windows\System32\wshom.ocx
Second, include the following using statement :-
using IWshRuntimeLibrary;
Third, Here is the code :-
// This creates a Folder Shortcut
IWshShell wsh = new WshShellClass();
IWshShortcut shortcut = (IWshShortcut) wsh.CreateShortcut (shortcutpathfilename);
shortcut.TargetPath = targetdir;
shortcut.Save();
shortcutpathfilename is a path & filename of the .lnk file.
targetdir is the directory the link points to.