My problem can be described with following statements:
- I would like my program to be able to compress and decompress selected files
- I have very large files (20 GB+). It is safe to assume that the size will never fit into the memory
- Even after compression the compressed file might still not fit into the memory
- I would like to use System.IO.Compression.GzipStream from .NET Framework
- I would like my application to be parallel
As I am a newbie to compression / decompression I had following idea on how to do it:
I could use split the files into chunks and compress each of them separately. Then merge them back into a whole compressed file.
Question 1 about this approach - Is compressing multiple chunks and then merging them back together going to give me the proper result i.e. if I were to reverse the process (starting from compressed file, back to decompressed) will I receive the same original input?
Question 2 about this approach - Does this approach make sense to you? Perhaps you could direct me towards some good lecture about the topic? Unfortunately I could not find anything myself.