Example #1
0
        private void WriteImage(PVFS2Writer x)
        {
            PVFS2Writer w;

            w = x;
            // Write the image
            w.Write("FWEB");
            w.Write((byte)0x01);
            w.Write((byte)0x00);
            w.Write((UInt16)files.Count);
            w.Write((UInt32)w.ImgLen);

            foreach (PVFSFileRecord file in files)
            {
                w.Write((UInt16)file.nameHash);
            }
            foreach (PVFSFileRecord file in files)
            {
                w.Write(file.locStr);
            }

            UInt16 flags;

            foreach (PVFSFileRecord file in files)
            {
//                w.Write(file.locStr);
//                w.Write(file.locData);
                w.Write((UInt32)file.data.Length + (UInt32)file.FileName.Length + 9);
                w.Write((UInt16)(file.FileName.Length + 9));
                flags = 0;
                if (file.hasIndex)
                {
                    flags |= PVFS2_FLAG_HASINDEX;
                }
                if (file.isZipped)
                {
                    flags |= PVFS2_FLAG_ISZIPPED;
                }
                w.Write(flags);
                w.Write(file.FileName);
                w.Write((byte)0x00);
                w.Write(file.data);

//                w.Write((UInt32)((file.fileDate.ToUniversalTime().Ticks - 621355968000000000) / 10000000));
//                w.Write((UInt32)0);
            }
            while ((w.ImageLength & 0x0000000f) != 0)
            {
                w.Write((byte)0xFF);
            }

/*		   foreach (PVFSFileRecord file in files)
 *          {
 *              w.Write(file.FileName);
 *              w.Write((byte)0x00);
 *          }
 *
 *                      foreach (PVFSFileRecord file in files)
 *              w.Write(file.data);
 */

            w.Close();
            generatedImageName = w.imageName;

            log.Add("\r\nGENERATED WEBFS IMAGE: " + w.ImageLength + " bytes");
        }
Example #2
0
        private void WriteImage(PVFS2Writer x)
        {
            PVFS2Writer w;

            w = x;
                // Write the image
            w.Write("FWEB");
            w.Write((byte)0x01);
            w.Write((byte)0x00);
            w.Write((UInt16)files.Count);
            w.Write((UInt32)w.ImgLen);

            foreach (PVFSFileRecord file in files)
            {
                w.Write((UInt16)file.nameHash);
            }
            foreach (PVFSFileRecord file in files)
            {
                w.Write(file.locStr);
            }

            UInt16 flags;
            foreach (PVFSFileRecord file in files)
            {
            //                w.Write(file.locStr);
            //                w.Write(file.locData);
                w.Write((UInt32)file.data.Length + (UInt32)file.FileName.Length + 9);
                w.Write((UInt16)(file.FileName.Length + 9));
                flags = 0;
                if (file.hasIndex)
                    flags |= PVFS2_FLAG_HASINDEX;
                if (file.isZipped)
                    flags |= PVFS2_FLAG_ISZIPPED;
                w.Write(flags);
                w.Write(file.FileName);
                w.Write((byte)0x00);
                w.Write(file.data);

            //                w.Write((UInt32)((file.fileDate.ToUniversalTime().Ticks - 621355968000000000) / 10000000));
            //                w.Write((UInt32)0);
            }
            while ((w.ImageLength & 0x0000000f) != 0) w.Write((byte)0xFF);

            /*		   foreach (PVFSFileRecord file in files)
            {
                w.Write(file.FileName);
                w.Write((byte)0x00);
            }

            foreach (PVFSFileRecord file in files)
                w.Write(file.data);
            */

            w.Close();
            generatedImageName = w.imageName;

            log.Add("\r\nGENERATED WEBFS IMAGE: " + w.ImageLength + " bytes");
        }