В настоящее время я пытаюсь сохранить поток, содержащий изображение в формате 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, поэтому оно должно работать и с Windows 8.