Сохранение потока, содержащего изображение, в локальную папку на Windows Phone 8

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

8
задан Damir Arh 31 January 2013 в 18:46
поделиться