Пример #1
0
        /// <summary>
        /// 执行实际的写数据
        /// </summary>
        /// <returns>
        /// 成功 - true
        /// 失败 - false
        /// </returns>
        public Boolean write()
        {
            SVSerialize svSerialize = new SVSerialize();

            svSerialize.pack(_name);
            svSerialize.pack(_version);
            svSerialize.pack(_type);
            svSerialize.pack(_fileSize);
            svSerialize.pack(_crc);
            svSerialize.pack(_imagePos);
            svSerialize.pack(_iamgeSize);
            foreach (var item in _rsv)
            {
                svSerialize.pack(item);
            }
            svSerialize.pack(_data);

            FileStream fileStream = new FileStream(_fileName, FileMode.Create);

            try
            {
                byte[] allData = svSerialize.ToArray();
                fileStream.Write(allData, 0, allData.Length);
            }
            catch (IOException)
            {
                return(false);
            }
            finally
            {
                fileStream.Close();
            }

            return(true);
        }
Пример #2
0
 /// <summary>
 /// 反序列化当前版本数据
 /// </summary>
 /// <param oldName="serialize">序列化对象</param>
 public void unpack(SVSerialize serialize)
 {
     serialize.unpack(ref Year);
     serialize.unpack(ref Month);
     serialize.unpack(ref Day);
     serialize.unpack(ref Hour);
     serialize.unpack(ref Minute);
     serialize.unpack(ref Second);
     serialize.unpack(ref rsv);
 }
Пример #3
0
        public Byte rsv;            //预留,保证4字节对齐

        /// <summary>
        /// 序列化当前版本数据
        /// </summary>
        /// <param oldName="serialize">序列化对象</param>
        public void pack(SVSerialize serialize)
        {
            serialize.pack(Year);
            serialize.pack(Month);
            serialize.pack(Day);
            serialize.pack(Hour);
            serialize.pack(Minute);
            serialize.pack(Second);
            serialize.pack(rsv);
        }
Пример #4
0
        /// <summary>
        /// 从当前指定的文件中文件内容
        /// </summary>
        /// <returns>成功-true  失败-false</returns>
        public Boolean read()
        {
            int length = 0;

            byte[] allData = null;

            FileStream fileStream = new FileStream(_fileName, FileMode.Open);

            try
            {
                ///length = (Int32)(fileStream.Length - 32);
                length  = (Int32)(fileStream.Length);
                allData = new byte[fileStream.Length];
                fileStream.Read(allData, 0, (Int32)fileStream.Length);
            }
            catch (IOException ex)
            {
                return(false);
            }
            finally
            {
                fileStream.Close();
            }

            if (allData == null)
            {
                return(false);
            }

            SVSerialize svSerialize = new SVSerialize(allData);

            svSerialize.unpack(ref _name);
            //_version.unpack(svSerialize);
            svSerialize.unpack(ref _version);
            svSerialize.unpack(ref _type);
            svSerialize.unpack(ref _fileSize);
            svSerialize.unpack(ref _crc);
            svSerialize.unpack(ref _imagePos);
            svSerialize.unpack(ref _iamgeSize);

            for (int i = 0; i < 7; i++)
            {
                svSerialize.unpack(ref _rsv[i]);
            }

            ///需要减去当前头部长度
            _data = new byte[length - 64];
            svSerialize.unpack(ref _data);

            return(true);
        }