我正在使用C#访问系统上的最新文件并通过以下方式复制它们
Environment.SpecialFolder.Recent
但是,Windows中的最近文件夹仅创建指向文件实际位置的快捷方式。与快捷方式本身相反,如何复制快捷方式指向的文件?
非常感谢您的任何帮助
最佳答案
我发现并更改了此代码,对我有用:
static string GetShortcutTargetFile(string shortcutFilename)
{
string pathOnly = System.IO.Path.GetDirectoryName(shortcutFilename);
string filenameOnly = System.IO.Path.GetFileName(shortcutFilename);
Shell32.Shell shell = new Shell32.Shell();
Shell32.Folder folder = shell.NameSpace(pathOnly);
Shell32.FolderItem folderItem = folder.ParseName(filenameOnly);
if (folderItem != null)
{
return ((Shell32.ShellLinkObject)folderItem.GetLink).Path;
}
return ""; // not found, use if (File.Exists()) in the calling code
// or remove the return and throw an exception here if you like
}
您必须将对
Microsoft Shell Controls And Automation
COM对象(Shell32.dll)的引用添加到项目中,以使此工作有效。