using System;
using System.IO;
using System.IO.Compression;
using System.Threading.Tasks;
class Program {
static void Main(string[] args) {
string[] filesToCompress = new string[] { "file1.txt", "file2.txt", "file3.txt" };
// use multiple threads to compress the files
Parallel.ForEach(filesToCompress, file => {
CompressFile(file);
});
Console.WriteLine("File compression completed successfully.");
Console.ReadLine();
}
static void CompressFile(string file) {
string compressedFileName = file + ".gz";
using (FileStream originalFileStream = File.OpenRead(file)) {
using (FileStream compressedFileStream = File.Create(compressedFileName)) {
using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress)) {
originalFileStream.CopyTo(compressionStream);
}
}
}
Console.WriteLine("File compressed successfully: " + compressedFileName);
}
}