我正在使用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)的引用添加到项目中,以使此工作有效。

08-17 14:35