13

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

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

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

4

2 回答 2

14

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

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

  • 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,尽管您只能访问应用程序下载的文件。

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

于 2013-01-13T01:20:10.033 回答
7

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

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

于 2013-01-13T00:29:49.643 回答