2012-01-25 84 views
4

如何从我的应用程序打开Windows 7库,如Documents,Pictures,Music,Videos和所有其他自定义库?在Windows资源管理器中打开Windows 7库

Libraries

我试图打开explorer.exe Libraries\Documents但它不工作。

+1

请参阅http://www.codeproject.com/Articles/65535/Windows-7-Libraries-C-Quick-Reference – ken2k

回答

5

找到AppData目录:

Dim appData As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

查找的文件快捷方式,并在资源管理器中打开它:

For Each file As String In Directory.GetFiles(appData, "Documents.library-ms", SearchOption.AllDirectories) 
    Process.Start(file) 
Next 
+2

这也看起来像它依赖于实现细节。肯定有这个API。 –

+0

@大卫有一个适当的API和Obalix已经在他的答案中链接到它。 – MarkJ

1

库储存在C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Libraries 和具有扩展.library-ms所以DocumentsDocuments.library-ms

+4

哦,硬编码路径和对实现细节的依赖。 –

+0

我只是告诉他们为什么它不工作,它不一定是正确的编程方式,他们试图打开Libraries \ Documents时,它应该是库\ Documents.library-ms –

0

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

用什么都夹你需要更换我的文档,看在枚举,看看哪些有。

+0

鉴于用户可以创建自己的,你将如何打开它(它不会在特殊文件夹枚举中)? –

+0

另外,在域连接的机器上,这会爆炸。 – Barton

+0

我的电脑位于一个域上,并且运行正常。除此之外,问题可能还有更多。 – Chris

4

查看this以查看Windows 7库上最常见的操作是如何执行的。

编辑:

该示例使用Windows API Code Pack for Micorosoft .Net Framework[编辑2015年9月24日:一个链接是死的 - 使用this SO entry找到必要的NuGet包](感谢MarkJ指点该链接应该在那里)。

至于David Heffernan的问题...

您可以使用分配ShellLibrary对象的Microsoft.WindowsAPICodePack.Dialogs.CommonFileDialogDefaultDirectoryShellContainer特性(例如在Microsoft.WindowsAPICodePack.Dialogs.CommonOpenFileDialog)。

+0

使用[适当的API](http://archive.msdn.microsoft.com/WindowsAPICodePack)+1而不是依靠实现细节 – MarkJ

+1

问题在于它对于我来说至少不是显而易见的,至少,在这个文件夹下打开一个资源管理器 –

+0

@DavidHeffernan:见编辑。 – AxelEckenberger

1

Windows API Code Pack提供托管API与Windows 7库进行交互。我认为这可能会有所帮助。

+0

+1虽然它仍然看起来很难使用。代码示例[here](http://blogs.msdn.com/b/msaleh/archive/2009/08/26/windows-shell-programming-with-windows-api-code-pack.aspx)包括一个迭代库。 – MarkJ

+0

刚刚注意到Obalix的答案也与此API代码包的使用有关。他链接[这里](http://www.codeproject.com/Articles/65535/Windows-7-Libraries-C-Quick-Reference) – MarkJ

0

这是关系到下LostInLib的文章的评论,因为对此的解释是太长以至于不能作为评论。

您需要了解库和文档文件夹之间的区别,因为它们不是同一件事。 C:\ Users \ USERNAME \ Documents是默认文档文件夹C:\ Users \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows \ Libraries \ Documents.library-ms是名为Documents的库,该库是所有位置的索引您添加到它,它不必链接到C:\ Users \ USERNAME \ Documents,例如在我的网络上,我已将它设置为\ server \ users \ USERNAME,因此当用户转到文档库上开始菜单,他们被重定向到服务器共享。您也可以在一个库中拥有多个位置,这样我就可以将我的文档LOCAL和服务器中的文档关联起来,因此,当我访问我的文档库时,它会在一个位置显示这两个文件夹,因此它们似乎是在我的文档文件夹中。

因此,假设我的文档将在这里不是很好,因为它不一定是C:\ Users \ USERNAME \ Documents,与库相同,也不必在这里C:\ Users \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows \ Libraries \ Documents.library-ms 如果您重定向您的appdata文件夹,例如在网络上,您的库也可以在此处: \ server \ users \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows \ Libraries \ Documents.library-ms

相关问题