Откройте библиотеку Windows 7 в проводнике Windows. - PullRequest
4 голосов
/ 25 января 2012

Как открыть библиотеку Windows 7, например Documents, Pictures, Music, Videos и все другие пользовательские библиотеки из моего приложения?

Libraries

Я попытался открыть explorer.exe Libraries\Documents, но это не работает.

Ответы [ 6 ]

5 голосов
/ 25 января 2012

Найдите каталог 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
4 голосов
/ 25 января 2012

Посмотрите на это , чтобы увидеть, как наиболее распространенные действия выполняются в библиотеках Windows 7.

Edit:

В примере используется Windows API Code Pack для Micorosoft .Net Framework [править 2015-09-24: предыдущая ссылка устарела - использовать эта запись SO для поиска необходимых пакетов Nuget ] (спасибо MarkJ за указание на то, что ссылка должна быть там).

Что касается Дэвид Хеффернан вопрос ...

Вы используете присвоение объекта ShellLibrary свойству DefaultDirectoryShellContainer Microsoft.WindowsAPICodePack.Dialogs.CommonFileDialog (например, Microsoft.WindowsAPICodePack.Dialogs.CommonOpenFileDialog).

1 голос
/ 25 января 2012

Пакет кодов Windows API предоставляет управляемые API для взаимодействия с библиотеками Windows 7. Я думаю, что это может помочь.

1 голос
/ 25 января 2012

Библиотеки хранятся в C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Libraries и имеют расширение .library-ms, поэтому Documents будет Documents.library-ms

0 голосов
/ 25 января 2012

Это связано с комментариями к сообщению LostInLib, поскольку объяснение слишком длинное, чтобы его можно было комментировать.

Вам необходимо понимать разницу между библиотеками и папкой документов, так как они не одно и то же. C: \ Users \ USERNAME \ Documents - это папка документов по умолчанию. C: \ Users \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows \ Libraries \ Documents.library-ms - это библиотека с именем Documents, библиотека является индексом всех расположений. вы добавляете к нему, он не должен быть связан с C: \ Users \ USERNAME \ Documents, например, в моей сети он имеет значение \ server \ users \ USERNAME, поэтому, когда пользователи переходят в библиотеку документов на меню Пуск они перенаправляются на общий ресурс сервера. Вы также можете иметь более одного местоположения в библиотеке, чтобы у меня там были мои документы ЛОКАЛЬНЫЕ И сервер мои документы, поэтому, когда я заходил в библиотеку своих документов, она отображала обе папки в одном месте, поэтому они выглядели как в той же папке мои документы.

Таким образом, предполагать, что мои документы будут здесь, нехорошо, поскольку они не обязательно должны быть C: \ Users \ USERNAME \ Documents, точно так же библиотеки здесь не обязательно должны быть C: \ Users \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows \ Библиотеки \ Documents.library мс если вы перенаправляете свою папку appdata, например, как в сети, ваши библиотеки также могут быть здесь: \ Сервер \ пользователи \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows \ Библиотеки \ Documents.library мс

0 голосов
/ 25 января 2012

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

Замените MyDocuments на любую нужную вам папку, посмотрите в перечислении, какие есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...