Tos*_*Net 0 c# storagefile windows-phone-8.1
我需要读取和写入我对此方法进行编码的 MemoryStream 但我在加载方法上有一个错误:
public async void SaveToStorage(MemoryStream stream, String filename)
{
var localFolder = ApplicationData.Current.LocalFolder;
var storageFile = await localFolder.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists);
using (Stream x = await storageFile.OpenStreamForWriteAsync())
{
x.Seek(0, SeekOrigin.Begin);
stream.WriteTo(x);
}
}
Run Code Online (Sandbox Code Playgroud)
以及出现问题的方法(我认为):
public async Task<MemoryStream> LoadToStorage(string filename)
{
var localFolder = ApplicationData.Current.LocalFolder;
var storageFile = await localFolder.GetFileAsync(filename);
using (var fileStream = await storageFile.OpenStreamForReadAsync())
{
using (var memoryStream = new MemoryStream())
{
await fileStream.CopyToAsync(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
return memoryStream;
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
您不希望在语句MemoryStream中的LoadToStorage方法中创建您using,因为大概,调用者不希望您交回已被Disposed的对象:
public async Task<MemoryStream> LoadToStorage(string filename)
{
var localFolder = ApplicationData.Current.LocalFolder;
var storageFile = await localFolder.GetFileAsync(filename);
using (var fileStream = await storageFile.OpenStreamForReadAsync())
{
var memoryStream = new MemoryStream();
await fileStream.CopyToAsync(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
return memoryStream;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |