Create a C# (VS 2008 based) class module to compress an unlimited number of files into a single compressed file and also provide the ability to decompress the files.? Create a desktop application that demonstrates the ability of the class to compress and decompress any number of files and file types.
You can use any .NET framework class available in .NET version 3.5 but you cannot use any libaries already developed on the market.? I need to be able to redistribute this class in one of my companies products and not pay any royalty fees.
## Deliverables
Tasks to be performed:
1. Create class module named (in the namespace: [login to view URL]) CompressFiles (name of the .cs file as well as the class).? CompressFiles class will have the following public members and methods:
1. Methods:
1. void AddFile (string fullPathFileName)
* Adds file to internal list of files to compress
2. void RemoveFile (string? fullPathFileName)
* Removes file from internal list of files to compress
3. void CompressFiles (string fullPathOutputFile)
* Compresses all files into the? fullPathOutputFile file
4. void DecompressFiles (string fullPathInputFile, string pathToDecompressFolder)
* Decompresses all files from? fullPathInputFile into the? pathToDecompressFolder).
2. Member Variables
1. List <string> Files
* List of files to be compressed (modified by the AddFile and RemoveFile methods)
2. long CombinedOriginalFileSize
* As files are being added/removed with AddFile/RemoveFile, this member is being updated based on the? sum of all? file sizes (in bytes) in list Files
3. long CombinedCompressedFileSize
* After CompressFile executes, the size of the compressed file.
2. Create desktop sample app: TestCompress.? The desktop application will have a single main dialog.? The top portion of the view will have a? list box control that allows selection of N number of files (using file picker), a text box to define the compress file path/name and a button to initiate the compression.? The bottom portion of the view will have a list box, text? box for the output folder? and a button "Decompress".? Pressing the button will prompt the user to select the file to decompress.? Upon valid selection of a file (also validate that the output folder is specified), delete the contents? of the output folder and decompress all files into the output path as well as populate the list box with all files decompressed.?