我想在通过网络发送文件之前对其进行压缩。我认为最好的方法是 7zip,因为它是免费和开源的。
我如何将 7zip 与 .net 一起使用?
我知道这7zip
是免费的,并且他们在 c# 中有源代码,但由于某种原因,它在 c# 上非常慢,所以7z.dll
出于性能原因,我宁愿调用安装 7zip 时附带的 dll。因此,我能够轻松编组和调用方法的方式 7z.dll
是在名为Sevenzipsharp的库的帮助下。例如,将该 dll 添加到我的项目中将使我能够执行以下操作:
// if you installed 7zip 64bit version then make sure you change plataform target
// like on the picture I showed above!
SevenZip.SevenZipCompressor.SetLibraryPath(@"C:\Program Files\7-Zip\7z.dll");
var stream = System.IO.File.OpenRead(@"SomeFileToCompress.txt");
var outputStream = System.IO.File.Create("Output.7z");
SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor();
compressor.CompressionMethod = SevenZip.CompressionMethod.Lzma2;
compressor.CompressionLevel = SevenZip.CompressionLevel.Ultra;
compressor.CompressStream(stream, outputStream);
这就是我在 c# 中使用 7zip 的方式。
现在我的问题是:
我想通过网络发送一个压缩文件。我知道我可以先压缩它然后发送它。该文件是4GB,所以我将不得不等待很长时间才能压缩它。我将在硬盘驱动器上浪费大量空间。然后我终于可以发送它了。我认为这太复杂了。我想知道如何在压缩文件的同时发送文件。