現在、カメラから取得したjpeg画像を含むストリームをローカルストレージフォルダに保存しようとしています。ファイルは作成中ですが、残念ながらデータがまったく含まれていません。これが私が使おうとしているコードです:
public async Task SaveToLocalFolderAsync(Stream file, string fileName)
{
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
StorageFile storageFile = await localFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
using (IRandomAccessStream fileStream = await storageFile.OpenAsync(FileAccessMode.ReadWrite))
{
using (IOutputStream outputStream = fileStream.GetOutputStreamAt(0))
{
using (DataWriter dataWriter = new DataWriter(outputStream))
{
dataWriter.WriteBytes(UsefulOperations.StreamToBytes(file));
await dataWriter.StoreAsync();
dataWriter.DetachStream();
}
await outputStream.FlushAsync();
}
}
}
public static class UsefulOperations
{
public static byte[] StreamToBytes(Stream input)
{
using (MemoryStream ms = new MemoryStream())
{
input.CopyTo(ms);
return ms.ToArray();
}
}
}
この方法でファイルを保存するのに役立つ情報は大歓迎です。オンラインで見つけたすべてのヘルプは、テキストの保存を参照しています。Windows.Storage名前空間を使用しているので、Windows8でも動作するはずです。