我想在通过网络发送文件之前对其进行压缩。我认为最好的方法是7zip,因为它是免费且开源的。
我知道7zip是免费的,并且他们有c#源代码,但出于某种原因,在c#上速度非常慢,所以我更愿意调用安装7zip时附带的7z.dll以提高性能。因此,我能够轻松地调用并调用7z.dll中的方法的方式是使用名为sevenzipsharp的库。例如,将该dll添加到我的项目中将使我能够执行以下操作:
这是我在C#中使用7zip的方法。
现在我的问题是:
我想通过网络发送一个压缩文件。我知道我可以先压缩它然后再发送。但是这个文件很大,有4GB,所以我要等很长时间才能完成压缩。我会浪费很多硬盘空间,最终才能将其发送。我认为这太复杂了。我想知道是否有可能在压缩的同时发送文件。
我知道7zip是免费的,并且他们有c#源代码,但出于某种原因,在c#上速度非常慢,所以我更愿意调用安装7zip时附带的7z.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,所以我要等很长时间才能完成压缩。我会浪费很多硬盘空间,最终才能将其发送。我认为这太复杂了。我想知道是否有可能在压缩的同时发送文件。