From dcbaaa3942ee87ea18f549231ef67360908d8412 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sat, 23 Aug 2025 07:18:25 +0100 Subject: [PATCH] [ZOO] Implement GetEntryNumber. --- Aaru.Archives/Zoo/Files.cs | 25 +++++++++++++++++++++++++ Aaru.Archives/Zoo/Unimplemented.cs | 5 ----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Aaru.Archives/Zoo/Files.cs b/Aaru.Archives/Zoo/Files.cs index 9551599c6..21097d42a 100644 --- a/Aaru.Archives/Zoo/Files.cs +++ b/Aaru.Archives/Zoo/Files.cs @@ -26,6 +26,7 @@ // Copyright © 2011-2025 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using System.Runtime.InteropServices; using Aaru.CommonTypes.Enums; @@ -110,5 +111,29 @@ public sealed partial class Zoo return ErrorNumber.NoError; } + /// + public ErrorNumber GetEntryNumber(string fileName, bool caseInsensitiveMatch, out int entryNumber) + { + // This can be done faster, it's 7am, gimme a break + entryNumber = -1; + + if(!Opened) return ErrorNumber.NotOpened; + + StringComparison comparison = caseInsensitiveMatch + ? StringComparison.CurrentCultureIgnoreCase + : StringComparison.CurrentCulture; + + for(int i = 0, count = _files.Count; i < count; i++) + { + if(GetFilename(i, out string name) != ErrorNumber.NoError || !name.Equals(fileName, comparison)) continue; + + entryNumber = i; + + return ErrorNumber.NoError; + } + + return ErrorNumber.NoSuchFile; + } + #endregion } \ No newline at end of file diff --git a/Aaru.Archives/Zoo/Unimplemented.cs b/Aaru.Archives/Zoo/Unimplemented.cs index 65086f9b4..03df53636 100644 --- a/Aaru.Archives/Zoo/Unimplemented.cs +++ b/Aaru.Archives/Zoo/Unimplemented.cs @@ -37,11 +37,6 @@ public sealed partial class Zoo { #region IArchive Members - /// - public ErrorNumber GetEntryNumber(string fileName, bool caseInsensitiveMatch, out int entryNumber) => - throw new NotImplementedException(); - - /// public ErrorNumber Stat(int entryNumber, out FileEntryInfo stat) => throw new NotImplementedException();