0

嘿,我有以下内容:

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

它不返回任何文件,我在 Music 文件夹中有文件。我也有 :

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

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

4

1 回答 1

3

形成您发布的代码,您似乎使用了错误的功能。

当您在应用程序的包清单中声明musicLibrary功能时,它必须包含uap命名空间,如下所示。

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

有关更多信息,请参阅应用能力声明

所以你可以改变你的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);

这将输出已知文件夹的路径,该文件夹是库中默认保存新文件的文件夹。有关更多信息,请参阅此答案

于 2017-03-22T10:41:37.753 回答