Skip to content

Разработать консольное приложение на C# для поблочного сжатия и распаковки файлов с помощью System.IO.Compression.GzipStream.

Notifications You must be signed in to change notification settings

ripmag/GZipTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Разработать консольное приложение на C# для поблочного сжатия и распаковки файлов с помощью System.IO.Compression.GzipStream. Для сжатия исходный файл делится на блоки одинакового размера, например, в 1 мегабайт. Каждый блок сжимается и записывается в выходной файл независимо от остальных блоков. Программа должна эффективно распараллеливать и синхронизировать обработку блоков в многопроцессорной среде и уметь обрабатывать файлы, размер которых превышает объем доступной оперативной памяти.
В случае исключительных ситуаций необходимо проинформировать пользователя понятным сообщением, позволяющим пользователю исправить возникшую проблему, в частности, если проблемы связаны с ограничениями операционной системы. При работе с потоками допускается использовать только базовые классы и объекты синхронизации (Thread, Manual/AutoResetEvent, Monitor, Semaphor, Mutex) и не допускается использовать async/await, ThreadPool, BackgroundWorker, TPL. Код программы должен соответствовать принципам ООП и ООД (читаемость, разбиение на классы и т.д.).
Параметры программы, имена исходного и результирующего файлов должны задаваться в командной строке следующим образом: GZipTest.exe compress/decompress [имя исходного файла] [имя результирующего файла] В случае успеха программа должна возвращать 0, при ошибке возвращать 1. Примечание: формат архива остаётся на усмотрение автора, и не имеет значения для оценки качества тестового, в частности соответствие формату GZIP опционально. # GZipTest Разработать консольное приложение на C# для поблочного сжатия и распаковки файлов с помощью System.IO.Compression.GzipStream. Для сжатия исходный файл делится на блоки одинакового размера, например, в 1 мегабайт. Каждый блок сжимается и записывается в выходной файл независимо от остальных блоков. Программа должна эффективно распараллеливать и синхронизировать обработку блоков в многопроцессорной среде и уметь обрабатывать файлы, размер которых превышает объем доступной оперативной памяти. В случае исключительных ситуаций необходимо проинформировать пользователя понятным сообщением, позволяющим пользователю исправить возникшую проблему, в частности, если проблемы связаны с ограничениями операционной системы. При работе с потоками допускается использовать только базовые классы и объекты синхронизации (Thread, Manual/AutoResetEvent, Monitor, Semaphor, Mutex) и не допускается использовать async/await, ThreadPool, BackgroundWorker, TPL. Код программы должен соответствовать принципам ООП и ООД (читаемость, разбиение на классы и т.д.). Параметры программы, имена исходного и результирующего файлов должны задаваться в командной строке следующим образом: GZipTest.exe compress/decompress [имя исходного файла] [имя результирующего файла] В случае успеха программа должна возвращать 0, при ошибке возвращать 1. Примечание: формат архива остаётся на усмотрение автора, и не имеет значения для оценки качества тестового, в частности соответствие формату GZIP опционально.

About

Разработать консольное приложение на C# для поблочного сжатия и распаковки файлов с помощью System.IO.Compression.GzipStream.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages