Esempio n. 1
0
        public void ExtractFileToMemory(string filename, ref byte[] outputBytes)
        {
            Archiver archiver = this.TrophyList.Find((Predicate <Archiver>)(b => Operators.CompareString(Strings.Mid(b.Name.ToUpper(), 1, Strings.Len(filename.ToUpper())), filename.ToUpper(), false) == 0));

            if (archiver == null)
            {
                return;
            }
            byte[] numArray = new byte[checked ((int)(archiver.Size - 1L) + 1)];
            using (FileStream fileStream = new FileStream(this._inputfile, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                fileStream.Seek(archiver.Offset, SeekOrigin.Begin);
                fileStream.Read(numArray, 0, numArray.Length);
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    memoryStream.Write(numArray, 0, numArray.Length);
                    outputBytes = memoryStream.ToArray();
                }
            }
        }
Esempio n. 2
0
        public void ExtractFile(string filename, string outputpath, string customename = null)
        {
            Archiver archiver = this.TrophyList.Find((Predicate <Archiver>)(b => Operators.CompareString(Strings.Mid(b.Name.ToUpper(), 1, Strings.Len(filename.ToUpper())), filename.ToUpper(), false) == 0));

            if (archiver == null)
            {
                return;
            }
            if (!Directory.Exists(outputpath))
            {
                Directory.CreateDirectory(outputpath);
            }
            byte[] array = new byte[checked ((int)(archiver.Size - 1L) + 1)];
            using (FileStream fileStream1 = new FileStream(this._inputfile, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                fileStream1.Seek(archiver.Offset, SeekOrigin.Begin);
                fileStream1.Read(array, 0, array.Length);
                using (FileStream fileStream2 = new FileStream(outputpath + Conversions.ToString(Path.DirectorySeparatorChar) + (customename != null ? customename : archiver.Name), FileMode.Create, FileAccess.ReadWrite, FileShare.None))
                    fileStream2.Write(array, 0, array.Length);
            }
        }