访问音乐文件 UWP -KnownFolders.MusicLibrary.GetItemsAsync() 没有 return 任何东西

Access music files UWP -KnownFolders.MusicLibrary.GetItemsAsync() doesnt return anything

嘿,我有以下内容:

 var fileList = await KnownFolders.MusicLibrary.GetItemsAsync();

它没有 return 任何文件,我的音乐文件夹中有文件。我也有 :

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

我不知道为什么它没有 return 任何文件/异常?有什么建议么 ?我也试过 FolderPicker 来获取文件夹中的所有文件,但结果相同。

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

The musicLibrary capability must include the uap namespace when you declare it in your app's package manifest as shown below.

<Capabilities><uap:Capability Name="musicLibrary"/></Capabilities>

更多信息,请参阅App capability declarations

所以你可以像下面这样改变你的Package.appxmanifest

<Capabilities>
  <Capability Name="internetClient" />
  <uap:Capability Name="removableStorage" />
  <uap:Capability Name="musicLibrary" />
  <uap:Capability Name="documentsLibrary" />
</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);

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