C# Windows Phone 8.1写入文件不工作
我正在向Windows Phone 8.1中的文件写入文本,如下所示:C# Windows Phone 8.1写入文件不工作,c#,windows-phone-8.1,C#,Windows Phone 8.1,我正在向Windows Phone 8.1中的文件写入文本,如下所示: private static async Task WriteData(String fileName, String content) { Byte[] data = Encoding.Unicode.GetBytes(content); var folder = ApplicationData.Current.LocalFolder; var file = await folder.Create
private static async Task WriteData(String fileName, String content)
{
Byte[] data = Encoding.Unicode.GetBytes(content);
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
using (var s = await file.OpenStreamForWriteAsync())
{
await s.WriteAsync(data, 0, data.Length);
}
}
但是当我读文件时,它是空的。我已经验证了没有其他方法在写入文件后立即从文件中读取来覆盖它。我是不是错过了一些明显的东西?也许你可以试试:
public async Task SaveStreamToFile(Stream streamToSave, string fileName, CancellationToken cancelToken)
{
Byte[] buf= Encoding.Unicode.GetBytes(content);
var folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
using (Stream fileStram = await file.OpenStreamForWriteAsync())
{
int bytesread = 0;
while ((bytesread = await streamToSave.ReadAsync(buf, 0, BUFFER_SIZE)) > 0)
{
await fileStram.WriteAsync(buf, 0, bytesread);
cancelToken.ThrowIfCancellationRequested();
}
}
}
我也有同样的问题。我保存了两个文件,一个包含调试信息,另一个包含特定于应用程序的信息和路由列表
StorageFolder local = ApplicationData.Current.LocalFolder;
var file = await local.CreateFileAsync "debug.txt",CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(file, sbDebugInformation.ToString());
但是CreateCollisionOption.ReplaceExisting似乎导致了其他信息的问题,在多次尝试之后,我最终发现了这个问题
StorageFolder local = ApplicationData.Current.LocalFolder;
var json = new DataContractJsonSerializer(typeof(RouteList));
var file = await local.CreateFileAsync(filename,CreationCollisionOption.OpenIfExists);
MemoryStream stream = new MemoryStream();
json.WriteObject(stream, routes);
await FileIO.WriteBytesAsync(file, stream.ToArray());
即使您确实有一个using子句,您是否已尝试在写入后显式关闭该文件?i、 e.s.Close?您确定正在查找文件夹的正确路径吗?ApplicationData.Current.LocalFolder