From 17b91984d6b13b44da1da595b0e72c4a6aa83f2f Mon Sep 17 00:00:00 2001 From: Perfare Date: Fri, 2 Jul 2021 02:29:03 +0800 Subject: [PATCH] fixed bug --- AssetStudio/FileReader.cs | 53 +++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/AssetStudio/FileReader.cs b/AssetStudio/FileReader.cs index 5b8f034..f801890 100644 --- a/AssetStudio/FileReader.cs +++ b/AssetStudio/FileReader.cs @@ -15,10 +15,10 @@ namespace AssetStudio { FullPath = Path.GetFullPath(path); FileName = Path.GetFileName(path); - CheckFileType(); + FileType = CheckFileType(); } - private void CheckFileType() + private FileType CheckFileType() { var signature = this.ReadStringToNull(20); Position = 0; @@ -28,38 +28,37 @@ namespace AssetStudio case "UnityRaw": case "UnityArchive": case "UnityFS": - FileType = FileType.BundleFile; - break; + return FileType.BundleFile; case "UnityWebData1.0": - FileType = FileType.WebFile; - break; + return FileType.WebFile; default: - var magic = ReadBytes(2); - Position = 0; - if (WebFile.gzipMagic.SequenceEqual(magic)) { - FileType = FileType.WebFile; + var magic = ReadBytes(2); + Position = 0; + if (WebFile.gzipMagic.SequenceEqual(magic)) + { + return FileType.WebFile; + } + Position = 0x20; + magic = ReadBytes(6); + Position = 0; + if (WebFile.brotliMagic.SequenceEqual(magic)) + { + return FileType.WebFile; + } + if (IsSerializedFile()) + { + return FileType.AssetsFile; + } + else + { + return FileType.ResourceFile; + } } - Position = 0x20; - magic = ReadBytes(6); - Position = 0; - if (WebFile.brotliMagic.SequenceEqual(magic)) - { - FileType = FileType.WebFile; - } - if (IsSerializedFile()) - { - FileType = FileType.AssetsFile; - } - else - { - FileType = FileType.ResourceFile; - } - break; } } - private bool IsSerializedFile() + public bool IsSerializedFile() { var fileSize = BaseStream.Length; if (fileSize < 20)