Improve stream file processing

This commit is contained in:
Perfare 2021-05-28 03:43:32 +08:00
parent d14c232015
commit 46c0e8ffe1
5 changed files with 9 additions and 5 deletions

View File

@ -162,7 +162,7 @@ namespace AssetStudio
}
else
{
resourceFileReaders.Add(file.fileName, subReader);
resourceFileReaders[file.fileName] = subReader; //TODO
}
}
}
@ -203,7 +203,7 @@ namespace AssetStudio
LoadWebFile(dummyPath, fileReader);
break;
case FileType.ResourceFile:
resourceFileReaders.Add(file.fileName, fileReader);
resourceFileReaders[file.fileName] = fileReader; //TODO
break;
}
}

View File

@ -171,6 +171,7 @@ namespace AssetStudio
var node = m_DirectoryInfo[i];
var file = new StreamFile();
fileList[i] = file;
file.path = node.path;
file.fileName = Path.GetFileName(node.path);
if (node.size >= int.MaxValue)
{

View File

@ -4,6 +4,7 @@ namespace AssetStudio
{
public class StreamFile
{
public string path;
public string fileName;
public Stream stream;
}

View File

@ -83,6 +83,7 @@ namespace AssetStudio
{
var data = dataList[i];
var file = new StreamFile();
file.path = data.path;
file.fileName = Path.GetFileName(data.path);
reader.BaseStream.Position = data.dataOffset;
file.stream = new MemoryStream(reader.ReadBytes(data.dataLength));

View File

@ -113,10 +113,11 @@ namespace AssetStudioGUI
int extractedCount = 0;
foreach (var file in fileList)
{
var filePath = Path.Combine(extractPath, file.fileName);
if (!Directory.Exists(extractPath))
var filePath = Path.Combine(extractPath, file.path);
var fileDirectory = Path.GetDirectoryName(filePath);
if (!Directory.Exists(fileDirectory))
{
Directory.CreateDirectory(extractPath);
Directory.CreateDirectory(fileDirectory);
}
if (!File.Exists(filePath))
{