我正在创建一个Windows应用商店应用。 我需要创建一个FileStream,以便为专有文件格式编写一些复杂的数据。我将System.IO添加到我的用途,但没有可用的FileStream。
我正在调查更多内容,“.NET for Windows商店应用概述”指南讨论了IsolatedStorage,这个库目前甚至没有使用。 经过一些阅读,我认为真正的替代品可能是来自nacemspace的FileRandomAccessStream:Windows.Storage.Streams
与Windows Store应用中使用的FileStream等效的真实是什么?
答案 0 :(得分: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
路径,但允许您访问Documents
,Pictures
和Downloads
(即使您的应用程序没有下载文件)。
答案 1 :(得分:7)
由于沙箱环境,在其中运行的Windows应用商店应用已被StorageFile
取代。请参阅此处获取文档: -
http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.aspx