Windows metro应用程序 - 在C#中编写和读取文本文件?

问题描述:

创建文本文件:Windows metro应用程序 - 在C#中编写和读取文本文件?

var myFile = "test"; 
var folderUsed = Windows.Storage.ApplicationData.Current.LocalFolder; 
var fileOption = Windows.Storage.CreationCollisionOption.ReplaceExisting; 
var createdFile = await folderUsed.CreateFileAsync(myFile, fileOption); 

写入字符串将创建的文本文件:

var writeThis = "write this "; 
await Windows.Storage.FileIO.WriteTextAsync(createdFile, writeThis); 

但是,它并没有指定哪个部分文本文件将被创建,我想在我的应用程序包中创建它,而不是在我的计算机中的其他位置创建它,这有可能吗?

其次,当我再次执行第二代码,我想我的文件,写成“写这篇文章写这个”,而不是取代旧的文件并创建另一个。

+0

你是什么意思与“创建它的包我的应用程序的内部”?你的意思是应用程序已安装的文件夹? –

+0

您是否尝试将它们放置在资产文件夹中? –

您应该使用

StorageFolder localFolder = ApplicationData.Current.LocalFolder; 
因为其他文件夹,如安装文件夹

受到限制,不允许读写操作。 Windows Store应用程序在这方面相当有限。

这个环节也很有用:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh758325.aspx

“不过,这并没有指定哪个部分文本文件将被创建,我想创建它的包我的应用程序内,而不是在我的电脑的其他地方,这有可能吗?“

它实际上是“几乎”唯一可能的!你的应用程序可以明确地访问它自己的'LocalFolder'文件夹,'RoamingFolder'位置,它可以在应用程序实例之间共享,或者'TemporaryFolder'可以被放弃。

如果您愿意,您可以使用Windows.Storage.KnownFolders.pictureLibrary将文件保存为图片库之类的内容,并且如果您使用“Windows.ApplicationModel.Package.current.installedLocation”,则可以只读访问您的安装文件夹所以愿意。

如果你的文件在资产文件夹,然后您可以通过访问它们:

String path = "ms-appx:///Assets/" + Domain + ".txt"; 
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(path)); 
string Value = await FileIO.ReadTextAsync(file); 
+0

如何获得'Domain'? – testing