Windows.Storage.KnownFolders.MusicLibrary路径返回空

本文关键字:返回 路径 MusicLibrary Storage KnownFolders Windows | 更新日期: 2023-09-27 18:01:48

我试图在c#编写的Windows通用应用程序中获得默认音乐库文件夹路径。然而,KnownFolders.MusicLibrary.Path返回空字符串,而(await KnownFolders.MusicLibrary.GetFoldersAsync())似乎返回空列表。我已经在Package.appxmanifest中指定了此功能:

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

我怎么做错了?我希望这行代码将返回类似C:'Users'username'Music的东西。

Windows.Storage.KnownFolders.MusicLibrary路径返回空

在KnownFolders的备注。MusicLibrary属性,我们可以找到

图书馆允许用户在单一位置查看相关内容。库是一个虚拟文件夹。库中的文件夹保持在其原始位置。在Windows libraries 中了解更多关于库的信息。

StorageFolder。Path属性可以获取文件系统中当前文件夹的完整路径,但前提是该路径为available。由于音乐库是一个虚拟文件夹,所以文件系统路径不可用。所以它总是返回空字符串。

Music Library通常有如下路径:

%USERPROFILE%'Music

这是音乐库中包含的已知文件夹的路径。

库是文件夹的虚拟集合,其中默认包括一个已知文件夹以及用户通过使用您的应用程序或其中一个内置应用程序添加到库中的任何其他文件夹。例如,Pictures库默认包含Pictures已知文件夹。用户可以使用您的应用程序或内置的照片应用程序向图片库添加文件夹或从图片库中删除文件夹。

为了得到这个路径,我们可以使用StorageLibrary类。这个类允许我们从库(如Music或Videos)中添加和删除文件夹,并允许我们获取库中包含的文件夹列表。

已知文件夹是库中默认保存新文件的文件夹。我们可以使用StorageLibrary。属性获取此文件夹,然后获取其路径,如下所示:

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

有关详细信息,请参阅音乐,图片和视频库中的文件和文件夹