获取资源管理器库中的所有目录

时间:2013-04-12 01:55:38

标签: c#

如何将所有图书馆位置添加到“我的音乐”?

对于此示例,我已将这些目录添加到库中:

E:\My Music
E:\Mp3

我试过了:

Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);

但它返回:

C:\Users\MyUser\Music

3 个答案:

答案 0 :(得分:1)

添加到Media Player的任何库都应该在AppData目录中。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Microsoft\Windows\Libraries\Music.library-ms"

也许这会有所帮助。

答案 1 :(得分:1)

您是否正在尝试开发Windows应用商店应用?如果是,请按照建议的here

尝试使用Windows.Store库

MSDN:http://msdn.microsoft.com/it-it/library/windows/apps/windows.storage.knownfolders.musiclibrary

答案 2 :(得分:0)

我在其他StackOverflow问题上做了类似的事情和posted a full solution with code using Windows API Code Pack。在您的情况下,您会找到以下代码:

        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()函数返回其中的多个文件夹。无论如何,请在另一个问题上查看我的完整代码解决方案。