访问音乐文件UWP-KnownFolders.MusicLibrary.GetItemsAsync()不返回任何内容

访问音乐文件UWP-KnownFolders.MusicLibrary.GetItemsAsync()不返回任何内容,uwp,win-universal-app,windows-10-universal,file-access,known-folders,Uwp,Win Universal App,Windows 10 Universal,File Access,Known Folders,嘿,我有以下几点: var fileList = await KnownFolders.MusicLibrary.GetItemsAsync(); 它不会返回任何文件,我的音乐文件夹中有文件。我还有: <Capabilities> <Capability Name="internetClient" /> <Capability Name="removableStorage" /> <Capability Name="documentsLibrary"

嘿,我有以下几点:

 var fileList = await KnownFolders.MusicLibrary.GetItemsAsync();
它不会返回任何文件,我的音乐文件夹中有文件。我还有:

<Capabilities>
<Capability Name="internetClient" />
<Capability Name="removableStorage" />
<Capability Name="documentsLibrary" />
<Capability Name="MusicLibrary" />
<Capability Name="HomeGroup" />
<Capability Name="RemovableDevices" />


我不知道为什么它不返回任何文件/异常?有什么建议吗?我还尝试使用FolderPicker获取文件夹中的所有文件,但结果相同。

从您发布的代码来看,您似乎使用了错误的功能

当您在应用程序包清单中声明musicLibrary名称空间时,该功能必须包括uap名称空间,如下所示

<Capabilities><uap:Capability Name="musicLibrary"/></Capabilities>
然后,您应该能够在音乐库中获取文件和子文件夹

var fileList = await KnownFolders.MusicLibrary.GetItemsAsync();
if (fileList.Count > 0)
{
    foreach (var item in fileList)
    {
        Debug.WriteLine(item.Name);
    }
}
音乐库通常具有以下路径

%USERPROFILE%\Music
您可以检查此路径下是否有文件。您还可以使用以下代码检查路径

var musicLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music);
Debug.WriteLine(musicLibrary.SaveFolder.Path);

这将输出已知文件夹的路径,即默认情况下保存新文件的库中的文件夹。有关更多信息,请参阅。

从您发布的代码中可以看出,您似乎使用了错误的功能

当您在应用程序包清单中声明musicLibrary名称空间时,该功能必须包括uap名称空间,如下所示

<Capabilities><uap:Capability Name="musicLibrary"/></Capabilities>
然后,您应该能够在音乐库中获取文件和子文件夹

var fileList = await KnownFolders.MusicLibrary.GetItemsAsync();
if (fileList.Count > 0)
{
    foreach (var item in fileList)
    {
        Debug.WriteLine(item.Name);
    }
}
音乐库通常具有以下路径

%USERPROFILE%\Music
您可以检查此路径下是否有文件。您还可以使用以下代码检查路径

var musicLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music);
Debug.WriteLine(musicLibrary.SaveFolder.Path);

这将输出已知文件夹的路径,即默认情况下保存新文件的库中的文件夹。有关更多信息,请参阅。

尽管您可以访问音乐库,但其中的文件可能会被隐藏。您是否可以尝试在库中创建一个文件,然后再次运行
GetItemsAsync()
以查看您创建的文件是否存在?尽管您可以访问MusicLibrary,但其中的文件可能是隐藏的。您可以尝试在库中创建一个文件,然后再次运行
GetItemsAsync()
以查看您创建的文件是否存在吗?谢谢,我在组件中添加了uap(必须了解您必须在每个功能完成后保存和生成,否则,如果重新生成它,将自动重新运行您编辑的内容)我试过了。所以很有趣的是,当鼠标悬停并在调试时检查文件列表时,它没有任何内容,但在循环中它显示有文件?这是什么魔法,先生?@ChrisTanev这是因为
文件列表
不是托管对象,默认情况下,UWP项目的调试器类型为“仅托管”。因此,您无法在调试时检查它。您可以尝试将调试器类型更改为“Mixed(Managed and Native)”,如用于检查。谢谢!我现在唯一的问题是,我删除的组件有时会自动添加回清单,所以我必须再次删除它们并构建项目。有什么想法吗?谢谢,我在组件中添加了uap(必须发现你必须在每个功能完成后保存和构建,否则如果你重新构建它,它会自动重新滚动你编辑的内容),我试过了。所以非常有趣的是,fileList在鼠标悬停时没有任何内容,在调试时检查它,但在循环中它显示有文件?这是什么魔法,先生?@ChrisTanev这是因为
文件列表
不是托管对象,默认情况下,UWP项目的调试器类型为“仅托管”。因此,您无法在调试时检查它。您可以尝试将调试器类型更改为“Mixed(Managed and Native)”,如用于检查。谢谢!我现在唯一的问题是,我删除的组件有时会自动添加回清单,所以我必须再次删除它们并构建项目。有什么想法吗?