Quelle est la meilleure façon de lire amnd write et IO.Stream (fichier Zip downloded d'Internet dans mon cas) à ApplicationData.Current.LocalFolderÉcrire (Lire) IO.Stream vers (à partir de) ApplicationData.Current.LocalFolder
J'ai essayé
public static async Task WriteToFile(
this System.IO.Stream input,
string fileName,
StorageFolder folder = null)
{
folder = folder ?? ApplicationData.Current.LocalFolder;
var file = await folder.CreateFileAsync(
fileName,
CreationCollisionOption.ReplaceExisting);
using (var fs = await file.OpenAsync(FileAccessMode.ReadWrite))
{
using (var outStream = fs.GetOutputStreamAt(0))
{
using (var dataWriter = new DataWriter(outStream))
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
{
dataWriter.WriteBytes(buffer);
}
await dataWriter.StoreAsync();
dataWriter.DetachStream();
}
await outStream.FlushAsync();
}
}
}
pour l'écriture et
StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(filename);
var fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
var stream = fileStream.AsStreamForRead();
mais le fichier est corrompu, quelque part le long de la way.I font pas penser qu'il ya un problème avec la lecture, il devrait être quelque part par écrit e e fichier. Existe-t-il un meilleur moyen d'écrire IO.Stream à ApplicationData.Current.LocalFolder qui fonctionne?
Pourquoi y a-t-il autant d'async? –
@AndrewBarber parce que c'est la nouvelle façon de faire les choses dans WinRT? – jv42
@AndrewBarber Chaque opération qui peut prendre plus de 50 ms doit être effectuée async –