Я использую класс FlashHeaderReader для своего собственного.К сожалению, он не поддерживает сжатые файлы (начинается с CWS - Adobe spetification )
Я немного изменил класс.И это может работать со сжатыми SWF.Этот класс требует ICSharpCode.SharpZipLib.dll.Вы можете скачать его с здесь или ICSharpCode .
Я только изменил конструктор
public FlashHeaderReader(String filename)
{
Height = 0;
Width = 0;
FrameCount = 0;
FrameRate = 0;
_currentIndex = 0;
Error = false;
FileStream fs = File.OpenRead(filename);
_data = new byte[fs.Length];
fs.Read(_data, 0, _data.Length);
fs.Close();
if (System.Text.Encoding.ASCII.GetString(_data, 0, 3).Equals("CWS"))
{
_mIsCompressed = true;
}
if (_mIsCompressed)
{
var list = new List<byte>(_data);
var header = list.GetRange(1, 7).ToArray();
list.RemoveRange(0, 8);
_data = list.ToArray();
using (var str = new MemoryStream(_data))
using (var dStr = new InflaterInputStream(str))
{
var buffer = new byte[4096];
list = new List<byte> {(byte) 'F'};
list.AddRange(header);
int count;
while ((count = dStr.Read(buffer, 0, 4096)) > 0)
{
list.AddRange(buffer.Take(count));
}
_data = list.ToArray();
}
}
ParseHeader();
}
Надеюсь, это поможет вам.