【问题标题】:Where is FileStream at the .NET for Windows Store?.NET for Windows Store 中的 FileStream 在哪里?
【发布时间】:2013-01-13 00:26:45
【问题描述】:

我正在创建一个 Windows 应用商店应用。 我需要创建一个 FileStream 以便为专有文件格式编写一些复杂的数据。我将 System.IO 添加到我的用途中,但没有可用的 FileStream。

我正在调查更多内容,“.NET for Windows Store 应用程序概述”指南谈到了IsolatedStorage,这个库目前甚至不使用它。 经过一番阅读,我认为真正的替代品可能是来自 nacemspace 的 FileRandomAccessStream:Windows.Storage.Streams

在 Windows 应用商店应用程序中使用的 真正 等效于 FileStream 是什么?

【问题讨论】:

  • 为什么这被否决了? System.IO 命名空间中功能的消失也让我感到惊讶。我们不会因为抨击而贬低自己,对吧?
  • @Dabblernl 我来晚了。去年我在做几个大的共享点项目,没有时间尝试 VS2012 预览版和 Windows 8 预览版。我现在必须赶上,这几天一直在阅读很多文章和 MSDN 帮助,我看到大多数文章的日期都在 2102 年初,甚至是 2011 年末,而且都充满了 cmets 和争论。所以,对于所有参与这场争论的人来说,我的问题看起来很愚蠢和/或懒惰。

标签: .net windows-store-apps


【解决方案1】:

确实,沙盒在您可以读取/写入的位置上有很多限制。以下是一些典型的位置:

如果您尝试从应用程序的安装文件夹加载资源,您可以使用以下方法:

  • StorageFolder installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation

  • StorageFile file = await StorageFile.GetFileFromApplicationUriAsync("ms-appx:///file.txt");

(它是一个只读文件夹,因此您无法编辑或创建新文件。)

如果您尝试将数据文件写入您的应用程序的数据文件夹,您可以使用以下方法:

  • StorageFolder localFolder = ApplicationData.Current.LocalFolder;

  • StorageFile file = await StorageFile.GetFileFromApplicationUriAsync("ms-appdata:///local/file.txt");

(此文件夹读写。您还可以通过更改本地来访问漫游临时文件夹到另外两个之一。)

还有一些其他文件夹,例如 DownloadsFolder,尽管您只能访问应用程序下载的文件。

或者,您可以随时使用FileOpenPickerFileSavePicker 请求用户许可。选择器不允许访问InstalledLocation 路径,但允许您访问DocumentsPicturesDownloads(即使您的应用没有下载该文件)。

【讨论】:

  • 太棒了。如何将这些对象与任何使用流的函数一起使用,例如序列化?
【解决方案2】:

由于在沙盒环境中运行的 Windows 应用商店应用程序已被 StorageFile 取代。有关文档,请参见此处:-

http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 2014-03-21
    • 2012-12-28
    • 2018-05-29
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多