嘿,我有以下内容:
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来获取文件夹中的所有文件,但结果相同。
答案 0 :(得分:3)
形成您发布的代码,似乎您使用了错误的功能。
musicLibrary 功能必须包含 uap 命名空间,当您在应用的程序包清单中声明它时,如下所示。
<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);
这将输出已知文件夹的路径,该文件夹是默认情况下保存新文件的库中的文件夹。有关详细信息,请参阅this answer。