【问题标题】:Read directories from a drive/folder in a Windows 8 Store app?从 Windows 8 应用商店应用程序中的驱动器/文件夹中读取目录?
【发布时间】:2013-12-02 13:54:31
【问题描述】:

是否有任何方法可以读取 Windows 8 应用商店应用程序中驱动器/文件夹中的所有目录/文件?除了阅读已知的文件夹(文档、图片等)之外,我已经用 Google 搜索了,也许你们可以帮助我。

谢谢!

【问题讨论】:

  • 由于您在作为 Windows 8 应用商店应用程序时对文件夹的写入权限有限,因此我只需使用 msdn.microsoft.com/en-us/library/windows/apps/… 来获取您可以实际写入的文件夹列表。
  • 没有办法读取整个驱动器吗?
  • 您无法在某些目录之外进行写入,因此没有简单的方法。你到底想做什么?
  • 我正在尝试扫描目录中的 .avi、.wmv 等,以获取较小的 xmbc 类型的应用程序。显示电影海报和电影信息等。
  • 应该有一种方法可以将 Windows 搜索的结果集成到您的程序中。这里有一些有趣的东西:msdn.microsoft.com/en-us/library/windows/apps/hh465238.aspx 只是为用户提供了一种过滤某些文件类型的方法。这应该允许您获取每个文件的完整目录,从而处理文件的播放。

标签: c# windows-8


【解决方案1】:

在 WinStore 应用程序中,对文件/文件夹的访问受到限制。

您可以访问应用程序的安装文件夹,可由 Windows.ApplicationModel.Package.Current.InstalledLocation 访问。

您可以通过 KnownFolders 类访问已知文件夹(文档、图片、视频等)。您必须声明适当的功能。例如,如果您需要访问 VideosLibrary 文件夹,则必须定义 VideosLibrary 功能。

其他位置的文件只能由 FilePicker 访问。

更多信息,请看:

KnownFolders class (Windows)

File access and permissions in Windows Store apps (Windows)

App capability declarations (Windows Store apps) (Windows)

Integrating with file picker contracts(Windows Store apps) (Windows)

【讨论】:

    【解决方案2】:

    根据我的经验,您无法扫描系统上的任意文件夹/驱动器。 WinRT API 将您的访问范围限制为用户的“已知文件夹”。

    这与 Windows 体验的其余部分一致,所有媒体都应保存在各自的库中。您无需在视频库之外查找电影。

    【讨论】:

      【解决方案3】:

      您可以通过这种方式访问​​驱动器和文件夹,但它需要从 packageManifest 中打开功能

      StorageFolder 文件夹5 = 等待 StorageFolder.GetFolderFromPathAsync(@"Z:\");

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 2014-09-05
        相关资源
        最近更新 更多