ME3Explorer.Unreal.DLCPackage.DeleteEntry C# (CSharp) Метод

DeleteEntry() публичный Метод

public DeleteEntry ( int Index ) : void
Index int
Результат void
        public void DeleteEntry(int Index)
        {
            try
            {
                FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
                DebugOutput.PrintLn("Searching TOC...");
                int f = FindTOC();
                if (f == -1)
                    return;
                DebugOutput.PrintLn("Found TOC, deleting line...");
                MemoryStream m = DecompressEntry(f, fs);
                fs.Close();
                FileEntryStruct e = Files[Index];
                string toc = Encoding.UTF8.GetString(m.ToArray(), 0, (int)m.Length);
                string file = e.FileName + "\r\n";
                toc = toc.Replace(file, "");
                DebugOutput.PrintLn("Replacing TOC...");
                ReplaceEntry(Encoding.ASCII.GetBytes(toc), f);
                DebugOutput.PrintLn("Deleting Entry from Filelist...");
                List<FileEntryStruct> l = new List<FileEntryStruct>();
                l.AddRange(Files);
                l.RemoveAt(Index);
                Files = l.ToArray();
                Header.FileCount--;
                DebugOutput.PrintLn("Rebuilding...");
                ReBuild();
                DebugOutput.PrintLn("Done.");
            }
            catch (Exception ex)
            {
                DebugOutput.PrintLn("ERROR\n" + ex.Message);
            }
        }

Usage Example

        public static List<string> DLCExtractHelper(string file)
        {
            // KFreon: Ditching this stuff for Fobs ExtractAllDLC function in Texplorer2.cs
            // NOTE that the files are normally collected here, now done in Texplorer2.cs
            return new List<string>();




            List<string> ExtractedFiles = new List<string>();
            string[] dlcname = file.Split('\\');
            DebugOutput.PrintLn("Temp extracting DLC: " + dlcname[dlcname.Length - 3]);
            DLCPackage dlc = new DLCPackage(file);
            List<string> dlcpath = new List<string>(dlc.MyFileName.Split('\\'));
            dlcpath.RemoveRange(dlcpath.Count - 5, 5);
            string dlcExtractionPath = String.Join("\\", dlcpath.ToArray());

            List<int> Indicies = new List<int>();
            for (int i = 0; i < dlc.Files.Count(); i++)
            {
                DLCPackage.FileEntryStruct entry = dlc.Files[i];
                if (Path.GetExtension(entry.FileName).ToLower() == ".pcc" || Path.GetExtension(entry.FileName).ToLower() == ".tfc")
                {
                    DebugOutput.PrintLn("Extracting: " + dlc.Files[i].FileName);
                    try
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(dlcExtractionPath + dlc.Files[i].FileName));
                        using (FileStream fs = new FileStream(dlcExtractionPath + dlc.Files[i].FileName, FileMode.CreateNew))
                            dlc.DecompressEntry(i).WriteTo(fs);

                        Indicies.Add(i);
                    }
                    catch (Exception e)
                    {
                        DebugOutput.PrintLn("File " + dlcExtractionPath + entry.FileName + " already exists.  Extra: " + e.Message);
                        Console.WriteLine(e.Message);
                    }
                    ExtractedFiles.Add(dlcExtractionPath + entry.FileName);
                }
            }
            dlc.DeleteEntry(Indicies);
            return ExtractedFiles;
        }
All Usage Examples Of ME3Explorer.Unreal.DLCPackage::DeleteEntry