From 10f02af70bf7144582bbb41ebf059b58403f390c Mon Sep 17 00:00:00 2001 From: Perfare Date: Thu, 30 Aug 2018 21:34:41 +0800 Subject: [PATCH] Fixed #256 --- AssetStudio/StudioClasses/BundleFile.cs | 3 +-- AssetStudio/StudioClasses/ResourcesHelper.cs | 19 +++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/AssetStudio/StudioClasses/BundleFile.cs b/AssetStudio/StudioClasses/BundleFile.cs index a8f98d5..10d2277 100644 --- a/AssetStudio/StudioClasses/BundleFile.cs +++ b/AssetStudio/StudioClasses/BundleFile.cs @@ -2,7 +2,6 @@ using System.IO; using System.Linq; using Lz4; -using SevenZip.Compression.LZMA; namespace AssetStudio { @@ -229,7 +228,7 @@ namespace AssetStudio file.stream = memoryMappedFile.CreateViewStream();*/ var extractPath = path + "_unpacked\\"; Directory.CreateDirectory(extractPath); - file.stream = new FileStream(extractPath + file.fileName, FileMode.Create); + file.stream = File.Create(extractPath + file.fileName); } else { diff --git a/AssetStudio/StudioClasses/ResourcesHelper.cs b/AssetStudio/StudioClasses/ResourcesHelper.cs index 448b725..edb9a39 100644 --- a/AssetStudio/StudioClasses/ResourcesHelper.cs +++ b/AssetStudio/StudioClasses/ResourcesHelper.cs @@ -12,6 +12,13 @@ namespace AssetStudio public static byte[] GetData(string path, string sourceFilePath, long offset, int size) { var resourceFileName = Path.GetFileName(path); + + if (Studio.resourceFileReaders.TryGetValue(resourceFileName.ToUpper(), out var reader)) + { + reader.Position = offset; + return reader.ReadBytes(size); + } + var resourceFilePath = Path.GetDirectoryName(sourceFilePath) + "\\" + resourceFileName; if (!File.Exists(resourceFilePath)) { @@ -31,16 +38,8 @@ namespace AssetStudio } else { - if (Studio.resourceFileReaders.TryGetValue(resourceFileName.ToUpper(), out var resourceReader)) - { - resourceReader.Position = offset; - return resourceReader.ReadBytes(size); - } - else - { - MessageBox.Show($"can't find the resource file {resourceFileName}"); - return null; - } + MessageBox.Show($"can't find the resource file {resourceFileName}"); + return null; } } }