【问题标题】:Windows.Storage.KnownFolders.MusicLibrary path returns emptyWindows.Storage.KnownFolders.MusicLibrary 路径返回空
【发布时间】:2017-06-22 16:50:11
【问题描述】:

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

<Package ...>

  ...

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

我怎么做错了?我希望这行代码会返回类似C:\Users\username\Music

【问题讨论】:

  • 我记得图书馆没有路径。这是一个特殊的文件夹。见this topic

标签: c# uwp win-universal-app


【解决方案1】:

KnownFolders.MusicLibrary property备注中,我们可以发现

图书馆让用户可以在一个位置查看相关内容。库是一个虚拟文件夹。库中的文件夹保留在其原始位置。在Windows Libraries 中了解有关库的更多信息。

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

音乐库通常具有以下路径。

%USERPROFILE%\Music

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

库是文件夹的虚拟集合,默认情况下包括已知文件夹以及用户使用您的应用或内置应用之一添加到库中的任何其他文件夹。例如,图片库默认包含图片已知文件夹。用户可以使用您的应用或内置的照片应用将文件夹添加到图片库或从中删除。

要获得这条路径,我们可以使用StorageLibrary class。这个类让我们可以在音乐或视频等库中添加和删除文件夹,并让我们获取库中包含的文件夹列表。

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

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

更多信息,请查看Files and folders in the Music, Pictures, and Videos libraries

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多