/// <summary>
        /// Load all PAK files.
        /// </summary>
        private void LoadFileListing()
        {
            Dictionary <string, PakCentralDirFile> result = new Dictionary <string, PakCentralDirFile>();

            foreach (PakCentralDirFile cd in PakReaderSlim.ReadCentralDir())
            {
                result.Add(cd.filename, cd);
            }

            Files = result;
        }
 /// <summary>
 /// Close the reader.
 /// </summary>
 public void Close()
 {
     Files?.Clear();
     Files = null;
     PakReaderSlim?.Close();
 }
 /// <summary>
 /// Get a specific file from the loaded PAK files.
 /// </summary>
 /// <param name="filename">File name</param>
 /// <returns></returns>
 public byte[] GetFile(string filename) =>
 PakReaderSlim.ReadFileBytes(Files[PakUtil.NormalizeFilename(filename)]);
 /// <summary>
 /// Initialize a new <see cref="PakReader"/> object with the specified pak path.
 /// </summary>
 /// <param name="filename">The pak path</param>
 public PakReader(string filename)
 {
     PakReaderSlim = new PakReaderSlim(filename);
     LoadFileListing();
 }