Странные атрибуты в ZipEntry от DotNetZip - PullRequest
0 голосов
/ 17 мая 2019

Я использую DotNetZip в решении c # для проверки содержимого zip-файлов (в настоящее время используется v1.13.3). По некоторым причинам атрибуты файла, возвращаемые для различных ZipEntry, являются недействительными. Я получаю странные атрибуты с большими отрицательными числами (например, -211877848). Биты устанавливаются в атрибутах, которые не имеют смысла.

string filePath = @"C:\standard_skin.zip";

Console.WriteLine("Known Attributes: {0} {1}", KnownFileAttributes.ToString(), ((int)KnownFileAttributes).ToBitString());
using (ZipFile zip = ZipFile.Read(filePath))
{
    foreach (ZipEntry zipEntry in zip.Entries)
    {
        FileAttributes zipAttributes = zipEntry.Attributes;
        if ((zipAttributes & ~KnownFileAttributes) != 0)
        {
            Console.Write("*** ");
        }
        Console.WriteLine("Entry: {0}; Attributes: {1}; Bad Attributes: {2}; Known Attributes: {3} {4}", zipEntry.FileName, zipAttributes.ToString(), ((int)((zipAttributes & ~KnownFileAttributes))).ToBitString(), ((int)(zipAttributes & KnownFileAttributes)).ToBitString(), ((zipAttributes & KnownFileAttributes)).ToString());
    }
}

При запуске приведенного выше кода, я получаю вывод, как это:

Known Attributes: ReadOnly, Hidden, System, Directory, Archive 00000000000000000000000000110111
*** Entry: dialog_button_border/bottom.png; Attributes: -2118778848; Bad Attributes: 10000001101101100000000000000000; Known Attributes: 00000000000000000000000000100000 Archive
*** Entry: dialog_button_border/bottomleft.png; Attributes: -2118778848; Bad Attributes: 10000001101101100000000000000000; Known Attributes: 00000000000000000000000000100000 Archive

Вот ссылка на используемый zip-файл: https://drive.google.com/open?id=18BoKRrPzfz6fKqItlrWVgY6P3FtMvrAT

...