如何在Windows文件资源管理器中以编程方式将文件夹添加到收藏夹

如何在Windows文件资源管理器中以编程方式将文件夹添加到收藏夹,windows,Windows,我知道答案。基本上,这个想法是在%USERPROFILE%\Favoriates文件夹中创建一个指向文件夹的链接 然而,这对我不起作用。我正在使用Windows8(不知道这是否重要)。在my%USERPROFILE%\Favoriates中,它包含IE的favoriate项,而不是文件资源管理器 我试图在注册表和文件系统中找到此设置,方法是创建一个具有唯一名称的文件夹,并将其添加到文件资源管理器收藏夹中。然后在注册表和文件系统中搜索名称。没有生成任何内容。看起来您需要%UserProfile%\

我知道答案。基本上,这个想法是在
%USERPROFILE%\Favoriates
文件夹中创建一个指向文件夹的链接

然而,这对我不起作用。我正在使用Windows8(不知道这是否重要)。在my
%USERPROFILE%\Favoriates
中,它包含IE的favoriate项,而不是文件资源管理器


我试图在注册表和文件系统中找到此设置,方法是创建一个具有唯一名称的文件夹,并将其添加到文件资源管理器收藏夹中。然后在注册表和文件系统中搜索名称。没有生成任何内容。

看起来您需要%UserProfile%\Links


看起来您需要%UserProfile%\Links


啊,对于Windows 8,此位置似乎已更改为
%USERPROFILE%\Links
,而不是
%USERPROFILE%\favorites

所以来回答我的问题。要以编程方式将文件夹添加到Windows 8文件资源管理器中的收藏夹,您需要在
%USERPROFILE%\Links
文件夹中创建指向该文件夹的链接:

mklink /D %USERPROFILE%\Links\<Link_Name> <Tartget_Folder_Path>
mklink/D%USERPROFILE%\Links\

啊,对于Windows 8,此位置似乎已更改为
%USERPROFILE%\Links
,而不是
%USERPROFILE%\favorites

所以来回答我的问题。要以编程方式将文件夹添加到Windows 8文件资源管理器中的收藏夹,您需要在
%USERPROFILE%\Links
文件夹中创建指向该文件夹的链接:

mklink /D %USERPROFILE%\Links\<Link_Name> <Tartget_Folder_Path>
mklink/D%USERPROFILE%\Links\

浏览器收藏夹存储在此处
%USERPROFILE%\Links

浏览器收藏夹存储在此处
%USERPROFILE%\Links
通过编程方式,您希望使用来检索位置,而不是硬编码任何位置,然后使用
IShellLink
在该位置创建快捷方式文件

以下是第一部分的C#示例:

[DllImport(“shell32.dll”)]
静态外部int SHGetKnownFolderPath(
[Marshallas(UnmanagedType.LPStruct)]Guid knownFolderId,
乌因特旗,
IntPtr用户令牌,
[Marshallas(UnmanagedType.LPWStr)]输出字符串knownFolderPath);
//这对应于KNOWNFOLDERID_Links常量:
公共静态只读Guid链接=新Guid(“bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968”);
公共静态字符串GetKnownFolderPath(Guid knownFolderId)
{
字符串路径;
int result=SHGetKnownFolderPath(knownFolderId,0,IntPtr.Zero,out path);
//…(错误处理;检查E_失败、E_无效或S_正常的结果)
返回路径;
}

以编程方式,您希望使用with检索位置,而不是硬编码任何位置,然后使用
IShellLink
在该位置创建快捷方式文件

以下是第一部分的C#示例:

[DllImport(“shell32.dll”)]
静态外部int SHGetKnownFolderPath(
[Marshallas(UnmanagedType.LPStruct)]Guid knownFolderId,
乌因特旗,
IntPtr用户令牌,
[Marshallas(UnmanagedType.LPWStr)]输出字符串knownFolderPath);
//这对应于KNOWNFOLDERID_Links常量:
公共静态只读Guid链接=新Guid(“bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968”);
公共静态字符串GetKnownFolderPath(Guid knownFolderId)
{
字符串路径;
int result=SHGetKnownFolderPath(knownFolderId,0,IntPtr.Zero,out path);
//…(错误处理;检查E_失败、E_无效或S_正常的结果)
返回路径;
}

不要硬编码路径。使用API(例如SHGetKnownFolderPath)获取正确的路径。不要硬编码路径。使用API(例如SHGetKnownFolderPath)获取正确的路径。收藏夹列表将由用户控制。应用程序不应将它们插入用户的收藏夹中。这会导致用户不满意。收藏夹列表将由用户控制。应用程序不应将它们插入用户的收藏夹中。这会导致用户不满意。