diff --git a/SabreTools.Core.Test/SabreTools.Core.Test.csproj b/SabreTools.Core.Test/SabreTools.Core.Test.csproj index d89654b2..9218aca3 100644 --- a/SabreTools.Core.Test/SabreTools.Core.Test.csproj +++ b/SabreTools.Core.Test/SabreTools.Core.Test.csproj @@ -1,4 +1,4 @@ - + net6.0;net8.0;net9.0 @@ -24,12 +24,12 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/SabreTools.Core/SabreTools.Core.csproj b/SabreTools.Core/SabreTools.Core.csproj index 4c9ba41b..d882fbfe 100644 --- a/SabreTools.Core/SabreTools.Core.csproj +++ b/SabreTools.Core/SabreTools.Core.csproj @@ -42,7 +42,7 @@ - + diff --git a/SabreTools.DatFiles/SabreTools.DatFiles.csproj b/SabreTools.DatFiles/SabreTools.DatFiles.csproj index ecfc4191..412a8c29 100644 --- a/SabreTools.DatFiles/SabreTools.DatFiles.csproj +++ b/SabreTools.DatFiles/SabreTools.DatFiles.csproj @@ -37,11 +37,11 @@ - + - + \ No newline at end of file diff --git a/SabreTools.FileTypes.Test/SabreTools.FileTypes.Test.csproj b/SabreTools.FileTypes.Test/SabreTools.FileTypes.Test.csproj index 6ca06815..26cab7a2 100644 --- a/SabreTools.FileTypes.Test/SabreTools.FileTypes.Test.csproj +++ b/SabreTools.FileTypes.Test/SabreTools.FileTypes.Test.csproj @@ -1,4 +1,4 @@ - + net6.0;net8.0;net9.0 @@ -12,7 +12,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/SabreTools.FileTypes/Archives/GZipArchive.cs b/SabreTools.FileTypes/Archives/GZipArchive.cs index a15efd5d..3f700b20 100644 --- a/SabreTools.FileTypes/Archives/GZipArchive.cs +++ b/SabreTools.FileTypes/Archives/GZipArchive.cs @@ -240,7 +240,7 @@ namespace SabreTools.FileTypes.Archives var gz = new gZip(); ZipReturn ret = gz.ZipFileOpen(Filename); ret = gz.ZipFileOpenReadStream(0, out Stream? gzstream, out ulong streamSize); - gzipEntryRom = FileTypeTool.GetInfo(gzstream, (long)streamSize, _hashTypes); + gzipEntryRom = FileTypeTool.GetInfo(gzstream, _hashTypes); gzipEntryRom.Filename = gz.GetLocalFile(0).Filename; gzipEntryRom.Parent = gamename; gzipEntryRom.Date = (gz.TimeStamp > 0 ? gz.TimeStamp.ToString() : null); @@ -438,7 +438,7 @@ namespace SabreTools.FileTypes.Archives outDir = Path.GetFullPath(outDir); // If the base file is null, get the hash information - baseFile ??= FileTypeTool.GetInfo(stream, -1, _hashTypes, keepReadOpen: true); + baseFile ??= FileTypeTool.GetInfo(stream, _hashTypes, keepReadOpen: true); // Get the output file name string outfile = Path.Combine(outDir, Utilities.GetDepotPath(baseFile.SHA1, Depth) ?? string.Empty); diff --git a/SabreTools.FileTypes/Archives/RarArchive.cs b/SabreTools.FileTypes/Archives/RarArchive.cs index 4bfed996..e6e91e1d 100644 --- a/SabreTools.FileTypes/Archives/RarArchive.cs +++ b/SabreTools.FileTypes/Archives/RarArchive.cs @@ -210,7 +210,7 @@ namespace SabreTools.FileTypes.Archives else { using Stream entryStream = entry.OpenEntryStream(); - rarEntryRom = FileTypeTool.GetInfo(entryStream, entry.Size, _hashTypes); + rarEntryRom = FileTypeTool.GetInfo(entryStream, _hashTypes); } // Fill in common details and add to the list diff --git a/SabreTools.FileTypes/Archives/SevenZipArchive.cs b/SabreTools.FileTypes/Archives/SevenZipArchive.cs index 447372c5..89d8ade1 100644 --- a/SabreTools.FileTypes/Archives/SevenZipArchive.cs +++ b/SabreTools.FileTypes/Archives/SevenZipArchive.cs @@ -283,7 +283,6 @@ namespace SabreTools.FileTypes.Archives else { zipEntryRom = FileTypeTool.GetInfo(readStream, - (long)zf.GetLocalFile(i).UncompressedSize, _hashTypes, keepReadOpen: true); } diff --git a/SabreTools.FileTypes/Archives/TapeArchive.cs b/SabreTools.FileTypes/Archives/TapeArchive.cs index c20b0cc6..7b75b1ac 100644 --- a/SabreTools.FileTypes/Archives/TapeArchive.cs +++ b/SabreTools.FileTypes/Archives/TapeArchive.cs @@ -203,7 +203,7 @@ namespace SabreTools.FileTypes.Archives else { using Stream entryStream = entry.OpenEntryStream(); - tarEntryRom = FileTypeTool.GetInfo(entryStream, entry.Size, _hashTypes); + tarEntryRom = FileTypeTool.GetInfo(entryStream, _hashTypes); } // Fill in common details and add to the list diff --git a/SabreTools.FileTypes/Archives/XZArchive.cs b/SabreTools.FileTypes/Archives/XZArchive.cs index 30677d79..f9a51b75 100644 --- a/SabreTools.FileTypes/Archives/XZArchive.cs +++ b/SabreTools.FileTypes/Archives/XZArchive.cs @@ -216,7 +216,7 @@ namespace SabreTools.FileTypes.Archives else { var xzStream = new XZStream(File.Open(Filename!, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); - xzEntryRom = FileTypeTool.GetInfo(xzStream, size: -1, _hashTypes); + xzEntryRom = FileTypeTool.GetInfo(xzStream, _hashTypes); xzEntryRom.Filename = gamename; xzStream.Dispose(); } @@ -332,7 +332,7 @@ namespace SabreTools.FileTypes.Archives outDir = Path.GetFullPath(outDir); // If the base file is null, get the hash information - baseFile ??= FileTypeTool.GetInfo(stream, -1, _hashTypes, keepReadOpen: true); + baseFile ??= FileTypeTool.GetInfo(stream, _hashTypes, keepReadOpen: true); // Get the output file name string outfile = Path.Combine(outDir, Core.Tools.Utilities.GetDepotPath(baseFile.SHA1, Depth)!); diff --git a/SabreTools.FileTypes/Archives/ZipArchive.cs b/SabreTools.FileTypes/Archives/ZipArchive.cs index 1375ec4a..0b789a52 100644 --- a/SabreTools.FileTypes/Archives/ZipArchive.cs +++ b/SabreTools.FileTypes/Archives/ZipArchive.cs @@ -362,7 +362,6 @@ namespace SabreTools.FileTypes.Archives else { zipEntryRom = FileTypeTool.GetInfo(readStream, - (long)localFile.UncompressedSize, _hashTypes, keepReadOpen: true); } @@ -419,7 +418,6 @@ namespace SabreTools.FileTypes.Archives else { zipEntryRom = FileTypeTool.GetInfo(readStream, - localFile.Length, _hashTypes, keepReadOpen: false); } diff --git a/SabreTools.FileTypes/FileTypeTool.cs b/SabreTools.FileTypes/FileTypeTool.cs index 143c8329..61137d18 100644 --- a/SabreTools.FileTypes/FileTypeTool.cs +++ b/SabreTools.FileTypes/FileTypeTool.cs @@ -64,21 +64,10 @@ namespace SabreTools.FileTypes /// Retrieve file information for a single stream /// /// Stream to get information from - /// Size of the input stream /// Hashes to include in the information /// Populated BaseFile object if success, null on error - public static BaseFile GetInfo(Stream? input, long size, HashType[] hashes) - => GetInfo(input, size, hashes, keepReadOpen: false); - - /// - /// Retrieve file information for a single stream - /// - /// Stream to get information from - /// Hashes to include in the information - /// Indicates if the underlying read stream should be kept open - /// Populated BaseFile object if success, null on error - public static BaseFile GetInfo(Stream? input, HashType[] hashes, bool keepReadOpen) - => GetInfo(input, size: -1, hashes, keepReadOpen); + public static BaseFile GetInfo(Stream? input, HashType[] hashes) + => GetInfo(input, hashes, keepReadOpen: false); /// /// Retrieve file information for a single file @@ -88,7 +77,7 @@ namespace SabreTools.FileTypes /// Hashes to include in the information /// Indicates if the underlying read stream should be kept open /// Populated BaseFile object if success, empty one on error - public static BaseFile GetInfo(Stream? input, long size, HashType[] hashes, bool keepReadOpen) + public static BaseFile GetInfo(Stream? input, HashType[] hashes, bool keepReadOpen) { // If we have no stream if (input == null) @@ -96,20 +85,8 @@ namespace SabreTools.FileTypes try { - try - { - // If we want to automatically set the size - if (size == -1) - size = input.Length; - } - catch - { - // Don't set the length if the stream doesn't support it - } - - // TODO: Replace this with size variant when added // Run the hashing on the input stream - var hashDict = HashTool.GetStreamHashes(input, hashes); + var hashDict = HashTool.GetStreamHashesAndSize(input, hashes, out long size); if (hashDict == null) return new BaseFile(); diff --git a/SabreTools.FileTypes/SabreTools.FileTypes.csproj b/SabreTools.FileTypes/SabreTools.FileTypes.csproj index cbb1df21..af6b6124 100644 --- a/SabreTools.FileTypes/SabreTools.FileTypes.csproj +++ b/SabreTools.FileTypes/SabreTools.FileTypes.csproj @@ -38,10 +38,10 @@ - + - + diff --git a/SabreTools.Test/SabreTools.Test.csproj b/SabreTools.Test/SabreTools.Test.csproj index ec9404a6..1dc238ea 100644 --- a/SabreTools.Test/SabreTools.Test.csproj +++ b/SabreTools.Test/SabreTools.Test.csproj @@ -26,13 +26,13 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive