I will like to compress a file before sending it through the network. I think the best approach is 7zip because it is free and open source.

**How I use 7zip with .net?**

I know that `7zip` is free and that they have the source code in c# but for some reason it is very slow on c# so I rather call the dll `7z.dll` that comes when installing 7zip for performance reasons. So the way I am able to eassily marshal and call the methods in `7z.dll` is with the help of the library called [sevenzipsharp](http://sevenzipsharp.codeplex.com/) . For example adding that dll to my project will enable me to do:

![enter image description here](https://i.stack.imgur.com/rpRy1.png)

```
        // 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);

```

that's how I use 7zip within c#.

**Now my question is:**

I will like to send a compressed file over the network. I know I could compress it first then send it. The file is 4GB so I will have to wait a long time for it to compress. I will be wasting a lot of space on hard drive. then I will finally be able to send it. I think that is to complicated. **I was wondering how it will be possible to send the file meanwhile it is being compressed.**

---

It seems to be a problem with SevenZipSharp:
--------------------------------------------

![enter image description here](https://i.stack.imgur.com/tdaKy.png)