Как найти несжатый размер ионного почтового файла

У меня есть ZIP-файл, сжатый с помощьюИонная молния, Перед извлечением мне нужно проверить доступное дисковое пространство. Но как мне найти несжатый размер перед рукой? Есть ли в zip-файле какая-либо информация заголовка (по ионному), чтобы я мог ее прочитать?

Ответы на вопрос(2)

Решение Вопроса

Это должно сделать трюк:

static long totaluncompressedsize;
static string info;
.
.
.
.

// Option 1
foreach (ZipEntry e in zip)
{
    long uncompressedsize = e.UncompressedSize;
    totaluncompressedsize += uncompressedsize;
}

// Or

// Option 2 - will need to sift through the mass of info        
using (ZipFile zip = ZipFile.Read(zipFile))
{
    info = zip.Info;
}
 nawfal08 июн. 2012 г., 10:53
да, вы правы, доступ к информации собственности полный беспорядок
 nawfal08 июн. 2012 г., 10:16
спасибо, это сработало ... это тоже довольно быстро ... но я думаю, что может быть более быстрый подход, чем повторение каждой записи.
 nawfal08 июн. 2012 г., 10:15
позвольте мне проверить это ..
 13 июн. 2012 г., 12:44
Две вещи: # 1 - итерация каждой записи, поскольку в этом ответе правильный путь. Это не подразумевает полное сканирование zip-файла. Zip содержит метаданные для каждой записи в «центральном каталоге». и во время итерации вы просто просматриваете список объектов, созданных из этих метаданных. Это быстро. # 2. Свойство ZipFile.Info делает то же самое (повторяет записи) и форматирует вывод в виде строки.
 08 июн. 2012 г., 10:31
Вы можете проверить свойство zip.Info, но это занимает столько же времени и возвращает целую кучу полезной (?) информации.
public static long GetTotalUnzippedSize(string zipFileName)
{
    using (ZipArchive zipFile = ZipFile.OpenRead(zipFileName))
    {
        return zipFile.Entries.Sum(entry => entry.Length);
    }
}
 19 сент. 2015 г., 22:12
По крайней мере, эта версия компилируется и работает правильно :)
 nawfal18 сент. 2015 г., 17:59
Можете ли вы сказать нам, в чем преимущество этого или чем оно отличается от предыдущего ответа?

Ваш ответ на вопрос