Ответ 1
Любые библиотеки, добавленные в Media Player, должны заканчиваться в каталоге AppData
.
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Microsoft\Windows\Libraries\Music.library-ms"
Возможно, это поможет.
Как я могу получить все места в библиотеке, добавленные в "Моя музыка"?
В этом примере я добавил эти каталоги в библиотеку:
E:\My Music
E:\Mp3
Я пробовал:
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
Но он возвращает:
C:\Users\MyUser\Music
Любые библиотеки, добавленные в Media Player, должны заканчиваться в каталоге AppData
.
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Microsoft\Windows\Libraries\Music.library-ms"
Возможно, это поможет.
Вы пытаетесь разработать приложение для Windows Store? Если да, попробуйте с библиотекой Windows.Store, как предложено здесь
MSDN: http://msdn.microsoft.com/it-it/library/windows/apps/windows.storage.knownfolders.musiclibrary
Я сделал что-то подобное, и разместил полное решение с кодом, использующим Windows Code Code Pack, в этом другом вопросе StackOverflow. В вашем случае вы найдете код, который говорит:
ICollection<IKnownFolder> allSpecialFolders = Microsoft.WindowsAPICodePack.Shell.KnownFolders.All;
И затем перебирайте эти папки, чтобы найти тот, который соответствует вашим потребностям:
string fpath = "";
// Iterate over each folder and find the one we want
foreach ( var folder in allSpecialFolders )
{
if ( folder.ParsingName == foldername )
{
// We now have access to the xml path
fpath = folder.Path;
}
}
if ( fpath == "" )
return null;
var intFolders = GetLibraryInternalFolders(fpath);
return intFolders.Folders.ToList();
И затем используйте функцию GetLibraryInternalFolders()
, чтобы вернуть в нее несколько папок. В любом случае, проверьте мой полный код решения по другому вопросу.