LSLib.LS.PackageReader.Read C# (CSharp) Méthode

Read() public méthode

public Read ( ) : Package
Résultat Package
        public Package Read()
        {
            var mainStream = new FileStream(path, FileMode.Open, FileAccess.Read);

            using (var reader = new BinaryReader(mainStream, new UTF8Encoding(), true))
            {
                // Check for v13 package headers
                mainStream.Seek(-8, SeekOrigin.End);
                Int32 headerSize = reader.ReadInt32();
                byte[] signature = reader.ReadBytes(4);
                if (Package.Signature.SequenceEqual(signature))
                {
                    mainStream.Seek(-headerSize, SeekOrigin.End);
                    return ReadPackageV13(mainStream, reader);
                }

                // Check for v10 package headers
                mainStream.Seek(0, SeekOrigin.Begin);
                signature = reader.ReadBytes(4);
                Int32 version;
                if (Package.Signature.SequenceEqual(signature))
                {
                    version = reader.ReadInt32();
                    if (version == 10)
                    {
                        return ReadPackageV10(mainStream, reader);
                    }
                }

                // Check for v9 and v7 package headers
                mainStream.Seek(0, SeekOrigin.Begin);
                version = reader.ReadInt32();
                if (version == 7 || version == 9)
                {
                    return ReadPackageV7(mainStream, reader);
                }

                throw new InvalidDataException("No valid signature found in package file");
            }
        }
    }

Usage Example

 public void UncompressPackage(string packagePath, string outputPath, Func <AbstractFileInfo, bool> filter = null)
 {
     ProgressUpdate("Reading package headers ...", 0, 1, null);
     using (var reader = new PackageReader(packagePath))
     {
         Package package = reader.Read();
         UncompressPackage(package, outputPath, filter);
     }
 }
All Usage Examples Of LSLib.LS.PackageReader::Read