diff --git a/SabreTools.Helper/Tools/ArchiveTools.cs b/SabreTools.Helper/Tools/ArchiveTools.cs index a407eaa1..13bafb72 100644 --- a/SabreTools.Helper/Tools/ArchiveTools.cs +++ b/SabreTools.Helper/Tools/ArchiveTools.cs @@ -283,11 +283,11 @@ namespace SabreTools.Helper if (outarchive.Mode == ZipArchiveMode.Create || outarchive.GetEntry(outentryname) == null) { - IArchiveEntry iae = outarchive.CreateEntry(outentryname, CompressionLevel.Optimal) as IArchiveEntry; - using (Stream iaestream = iae.OpenEntryStream()) - using (Stream readerstream = (reader.Entry as IArchiveEntry).OpenEntryStream()) + ZipArchiveEntry iae = outarchive.CreateEntry(outentryname, CompressionLevel.Optimal) as ZipArchiveEntry; + + using (Stream iaestream = iae.Open()) { - readerstream.CopyTo(iaestream); + reader.WriteEntryTo(iaestream); } } success = true; diff --git a/SimpleSort/SimpleSort.cs b/SimpleSort/SimpleSort.cs index 9d17f56a..24d6c524 100644 --- a/SimpleSort/SimpleSort.cs +++ b/SimpleSort/SimpleSort.cs @@ -444,6 +444,14 @@ namespace SabreTools foreach (Rom found in foundroms) { _logger.Log("Matched name: " + found.Name); + + // Copy file between archives + _logger.User("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + found.Name + "'"); + string archiveFileName = Path.Combine(_outdir, found.Game + ".zip"); + ArchiveTools.CopyFileBetweenArchives(input, archiveFileName, rom.Name, found.Name, _logger); + + /* + // Extract file into temp and then rebuild string newinput = ArchiveTools.ExtractSingleItemFromArchive(input, rom.Name, _tempdir, _logger); if (newinput != null && File.Exists(newinput)) { @@ -458,6 +466,7 @@ namespace SabreTools // Don't log file deletion errors } } + */ } } }