如何在wp8下载之前压缩音频文件,与Google云端硬盘一样

时间:2014-07-03 17:55:32

标签: c# windows-phone-8

我使用BackgroundTransferRequest逐个下载多个音频文件,部分下载量可达70 MB。我想在下载之前压缩这些音频文件(从Google驱动器下载多个文件时也一样)。

为了说清楚,我不想将zip文件存储在隔离存储中,我只需要动态压缩音频文件,然后使用BackgroundTransferRequest下载压缩版本,最后将其解压缩

  1. 在下载wp8之前是否可以压缩音频文件?
  2. 我是否需要第三方工具或.Net为其提供压缩/解压缩类?
  3. 谢谢!

2 个答案:

答案 0 :(得分:0)

除非您从自己的网络服务下载,否则您无法压缩尚未下载​​的内容?

如果您是,.NET提供了GZipCompression类来处理ZIP文件。

答案 1 :(得分:0)

我使用Ionic.Zip库制作zip文件:

这是压缩文件的示例:

 string audiofile = AppDomain.CurrentDomain.BaseDirectory;

 using (Ionic.Zip.ZipFile zipFile = new Ionic.Zip.ZipFile())
      {
        using (MemoryStream tempstream = new MemoryStream())
        {
          string fileName = "song.mp3";
          string filepath = audiofile + "song.mp3";
          byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);

          zipFile.AddEntry(fileName, fileBytes);
        }
      }
      Guid g = new Guid();
      g = Guid.NewGuid();
      string path = audiofile + "Temp\\" + g.ToString() + ".Zip";
      zipFile.Save(path);

     // RETURN FILE USING YOUR BACKGROUNDTRANSFERREQUEST HERE with the path-variable 
  }