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

Windows metro应用程序-在C#中写入和读取文本文件?,c#,file-io,windows-8,C#,File Io,Windows 8,创建文本文件: var myFile = "test"; var folderUsed = Windows.Storage.ApplicationData.Current.LocalFolder; var fileOption = Windows.Storage.CreationCollisionOption.ReplaceExisting; var createdFile = await folderUsed.CreateFileAsync(myFile, fileOption); var

创建文本文件:

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);
将字符串写入已创建的文本文件:

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);

但是,它没有指定文本文件将在哪个部分创建,我想在我的应用程序包中创建它,而不是在我的计算机中的其他地方,可以吗

其次,当我再次执行第二个代码时,我希望我的文件被写为“write this write this”,而不是替换旧文件并创建另一个

StorageFolder localFolder = ApplicationData.Current.LocalFolder;
因为其他文件夹(如安装文件夹)受到限制,不允许进行读写操作。Windows应用商店应用程序在这一领域受到相当严格的限制

此链接也很有用:

“但是,它没有指定文本文件将在哪个部分创建,我想在我的应用程序包中创建它,而不是在我的计算机的其他地方,可以吗?”

这实际上是“几乎”唯一可能的事情!您的应用程序可以显式访问自己的“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);

“在我的应用程序包中创建”是什么意思?您是指安装应用程序的文件夹吗?您是否尝试将其放入“资产”文件夹中?如何获取