【问题标题】:Folder.jpg not found from an UWP app从 UWP 应用中找不到 Folder.jpg
【发布时间】:2017-03-10 21:06:46
【问题描述】:

我在通用 windows 平台上开发了一个音乐播放器应用程序。

在我的音乐文件夹中,我有一些 folder.jpg 文件(可能是由 windows 媒体播放器或凹槽音乐创建的?)。这些文件受系统保护和隐藏。

我想在我的应用程序中使用 folder.jpg,但在我的代码中看不到它们。 如果我尝试创建一个 folder.jpg,我遇到了一个未经授权的异常。

 StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(path);
 StorageFile coverFile = await folder.TryGetItemAsync("folder.jpg") as StorageFile;

coverFile 为空,如果我使用文件资源管理器检查,我可以看到它。

如何访问此类文件?

谢谢

【问题讨论】:

  • 您能否发布实际异常类型名称和完整的错误消息?
  • StorageFolder 听起来像是一个独立的存储文件夹。
  • 您将无法通过 UWP 中的路径访问文件夹 - 您应该使用已知文件夹或文件夹选择器。要访问音乐,您可以使用 KnownFolders.MusicLibrary。但这可能无济于事,因此我怀疑该应用无权读取系统保护和隐藏文件。
  • 是的,我通过音乐库中的路径访问它们并且它有效。我同意系统保护文件,我认为 UWP 无法访问它们。

标签: c# uwp


【解决方案1】:

UWP 应用在沙盒环境中运行。就他们对可以访问的文件的访问而言;

1) 本地/临时/漫游等自己的存储文件夹中的文件。

2) 如果文件已指定要访问该库(文档库有点例外),则文件位于库之类的地方。

3) 用户通过文件/文件夹打开选择器等方式“提供”的文件,值得注意的是,一旦应用可以访问某个文件/文件夹,它就可以请求“保留”访问权限该文件/文件夹供将来使用。

4) 应用还可以访问来自同一发布者的应用之间共享的特殊区域中的文件。

这个想法是,这仍然在用户的控制之下,因此,默认情况下,应用程序不能只打开 c:\temp 或 c:\users\name...\ 中的文件,但如果用户实际授予应用程序访问权限到其中一个文件,那就不同了。

Source

只需要使用 FolderPicker 来实际提供路径即可。 可以在here找到如何使用它的说明。

【讨论】:

  • 谢谢,实际上文件在音乐库中。我可以阅读除这些文件夹.jpg 之外的所有文件(mp3、一些图片、一些文本文件)。我认为这是因为它有一个系统隐藏标志。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 2019-03-10
  • 1970-01-01
  • 2021-09-21
  • 2016-04-07
  • 2017-10-27
相关资源
最近更新 更多