Как узнать, содержит ли массив байтов поток gzip? Мое приложение получает файлы из других приложений через http post с кодировкой Base64. В зависимости от реализации приложения, доставляющего файлы, массив байтов, выходящий из строки Base64, может быть заархивирован gzip. Как я могу распознать сжатые массивы? Я нашел какой-то метод, но я думаю, что он пойдет не так, если кто-то загрузит zip-файл или подготовлен "плохой" zip-файл
Это то, что я нашел и работает, но можно ли это как-то использовать?
C#
public static bool IsGZip(byte[] arr)
{
return arr.Length >= 2 && arr[0] == 31 && arr[1] == 139;
}
ВБ.NET
Public Shared Function IsGZip(arr As Byte()) As Boolean
Return arr.Length >= 2 AndAlso arr(0) = 31 AndAlso arr(1) = 139
End Function
Если IsGzip возвращает true, мое приложение распаковывает массив байтов.
docx
(или другой формат архивного файла документа) Zip или отдельным документом? - person Alexei Levenkov   schedule 14.10.2013