public static ClientParameters ReadParameters(string filePath)
        {
            ClientParameters p = new ClientParameters();

            int paraSize = Marshal.SizeOf(typeof(ClientParameters));

            byte[] fileData = System.IO.File.ReadAllBytes(filePath);
            byte[] paraData = fileData.ToList().SplitBytes(fileData.Length - paraSize, paraSize);
            for (int i = 0; i < 4; i++)
            {
                if (paraData[i] != 0xff)
                {
                    return(p);
                }
            }
            p = ByteArray2Struct <ClientParameters>(paraData);

            return(p);
        }
        public static void WriteParameters(byte[] sourceFileData, string destFileName, ClientParameters para)
        {
            int paraSize = Marshal.SizeOf(typeof(ClientParameters));

            byte[] paraData   = sourceFileData.ToList().SplitBytes(sourceFileData.Length - paraSize, paraSize);
            bool   paraExists = true;

            for (int i = 0; i < 4; i++)
            {
                if (paraData[i] != 0xff)
                {
                    paraExists = false;
                    break;
                }
            }
            para.InitHeader();
            byte[] paraDataNew      = Struct2ByteArray(para);
            System.IO.FileStream fs = new System.IO.FileStream(destFileName, FileMode.Create, FileAccess.Write);
            if (paraExists)
            {
                fs.Write(sourceFileData, 0, sourceFileData.Length - paraSize);
            }
            else
            {
                fs.Write(sourceFileData, 0, sourceFileData.Length);
            }
            fs.Write(paraDataNew, 0, paraDataNew.Length);
            fs.Close();
        }
 public static void WriteParameters(string filePath, ClientParameters para)
 {
     byte[] sourceFileData = System.IO.File.ReadAllBytes(filePath);
     WriteParameters(sourceFileData, filePath, para);
 }