Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("IMG file location: ");
            string fileLocation = Console.ReadLine();

            if (File.Exists(@fileLocation))
            {
                Console.WriteLine("Reading the IMG file!");
                IMGArchive        imgArchive        = IMGFile.Open(@fileLocation, EIMGArchiveMode.Read);
                IMGArchiveEntry[] iMGArchiveEntries = imgArchive.Entries.OrderBy(x => x.Name).ToArray();
                imgArchive.Dispose();
                imgArchive.Entries = iMGArchiveEntries;

                for (int i = 0; i < imgArchive.Entries.Length; i++)
                {
                    IMGArchiveEntry entry = imgArchive.Entries[i];
                    Console.WriteLine("Entry file " + i + " name is: " + entry.Name);
                }

                Console.WriteLine("Total entries is: " + imgArchive.Entries.Length);
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("File doesn't exist");
                Console.ReadLine();
            }
        }
Example #2
0
 public void CommitToIMGFile()
 {
     InitArchives();
     if (File.Exists("test3.img"))
     {
         File.Delete("test3.img");
     }
     File.Copy("test1.img", "test3.img");
     using (IMGArchive archive = IMGFile.Open("./test3.img", EIMGArchiveMode.Update))
     {
         Assert.IsNotNull(archive);
         IMGArchiveEntry[] entries = archive.Entries;
         int entry_count           = entries.Length;
         Assert.IsTrue(entry_count > 0);
         IMGArchiveEntry entry      = entries[0];
         string          entry_name = entry.FullName;
         Console.WriteLine("Unpacking file \"" + entries[0].FullName + "\"");
         if (!(Directory.Exists("test")))
         {
             Directory.CreateDirectory("test");
         }
         long entry_size = 0;
         using (Stream entry_stream = entry.Open())
         {
             Assert.IsNotNull(entry_stream);
             entry_size = entry_stream.Length;
             Assert.AreEqual(entry_size, (long)(entry.Length));
             entry_stream.Seek(0L, SeekOrigin.End);
             for (int i = 0; i < 2048; i++)
             {
                 entry_stream.WriteByte(0);
             }
             entry_size += 2048;
         }
         entries = archive.Entries;
         Assert.AreEqual(entry_count, entries.Length);
         entry = archive.GetEntry(entry_name);
         Assert.IsNotNull(entry);
         using (Stream entry_stream = entry.Open())
         {
             Assert.AreEqual(entry_size, entry_stream.Length);
             Assert.AreEqual(entry_size, entry.Length);
             if (entry_size >= 2048)
             {
                 entry_size -= 2048;
                 entry_stream.SetLength(entry_size);
             }
         }
     }
 }