от
Кто-нибудь знает хороший способ для сжатия и распаковки файлов и папок в C# быстро? Обработка больших файлов может потребоваться.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

10 Ответы

0 голосов
от
Кто-нибудь знает хороший способ для сжатия и распаковки файлов и папок в C# быстро? Обработка больших файлов может потребоваться.
0 голосов
от
Интернет .Net версии 2.0 имен
System.IO.Compression
поддерживает gzip и алгоритмы сдуваться. Вот два метода, которые сжимать и разжимать поток байтов, которые вы можете получить от вашего объекта файл. Вы можете заменена
GZipStream
для
DefaultStream
методов ниже, чтобы использовать этот алгоритм. Это все еще оставляет проблему обработки файлов, хотя сжатый с различными алгоритмами.
public static byte[] Compress(byte[] data)
{
    MemoryStream output = new MemoryStream();

    GZipStream gzip = new GZipStream(output, CompressionMode.Compress, true);
    gzip.Write(data, 0, data.Length);
    gzip.Close();

    return output.ToArray();
}

public static byte[] Decompress(byte[] data)
{
    MemoryStream input = new MemoryStream();
    input.Write(data, 0, data.Length);
    input.Position = 0;

    GZipStream gzip = new GZipStream(input, CompressionMode.Decompress, true);

    MemoryStream output = new MemoryStream();

    byte[] buff = new byte[64];
    int read =
0 голосов
от
Я всегда использовал библиотеку SharpZip. Вот ссылка
0 голосов
от
Как из .Чистая 1.1 единственный доступный метод в Java-библиотек. Используя классы зип в J# библиотеки классов для сжатия файлов и данных в C# Не уверен, если это изменилось в последних версиях.
0 голосов
от
Вы можете использовать 3-й партии библиотеки, такие как SharpZip как указал том. Другой способ (без 3-участник) является использование оболочки Windows API для. Вам потребуется установить ссылку на элементы управления Microsoft Shell и автоматизации библиотек com В C# - проект. Джеральд Гибсон пример: Копия интернет-архив мертвых странице
0 голосов
от
Мой ответ будет закрыть глаза и выбрать для DotNetZip. Это было испытано большое сообщество.
0 голосов
от
Gzipstream представляется действительно хорошая утилита для использования.
0 голосов
от
Это очень легко сделать в Java, и как говорилось выше вы можете добраться в библиотеках java.util.zip из C#. Для справок см.: java.util.zip документации пример кода Я использовал это некоторое время назад, чтобы сделать глубокий (рекурсивный) почтовый структуру папок, но я не думаю, что я когда-либо использовал распаковки. Если я так мотивирован, я могу вытащить этот код и изменять его в сюда позже.
0 голосов
от
Другой хорошей альтернативой является также DotNetZip.
0 голосов
от
вы можете создать zip-файл с помощью этого метода:
public async Task
...