public void CreateArchive(string filename)
        {
            BinaryWriter bw       = new BinaryWriter(new FileStream(filename, FileMode.Create));
            FileHeader   tempHead = new FileHeader();

            tempHead.Write(bw);
            FileIndex tempFileIndex = new FileIndex();

            tempFileIndex.TotalEntries = 0;
            tempFileIndex.Write(bw);
            FolderIndex tempFolderIndex = new FolderIndex();

            tempFolderIndex.TotalEntries = 0;
            tempFolderIndex.Write(bw);
            bw.Close();
        }
        private void WriteFAT(int fileIndexOffset)
        {
            BinaryWriter bw = new BinaryWriter(stream);

            // Write the index to it's new position.
            stream.Position = fileIndexOffset;
            fileIndex.Write(bw);
            int folderIndexOffset = (int)stream.Position;

            folderIndex.Write(bw);


            // Update the file header.
            stream.Position          = 0;
            header.FileIndexOffset   = fileIndexOffset;
            header.FolderIndexOffset = folderIndexOffset;
            header.Write(new BinaryWriter(stream));

            // Save.
            stream.Flush();
        }