/// <summary> /// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>. /// </summary> /// <returns> /// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>. /// </returns> /// <filterpriority>2</filterpriority> public override string ToString() { //真实的TransactionIdentity是14位的,然后在这里我们只显示12位 //只显示12位的原因是,这里返回的string会被comparer使用来判断2个消息是否配对 byte[] data = new byte[12]; System.Buffer.BlockCopy(((IPEndPoint)EndPoint).Address.GetAddressBytes(), 0, data, 0, 4); BitConvertHelper.GetBytes(((IPEndPoint)EndPoint).Port, data, 5); BitConvertHelper.GetBytes(MessageId, data, 9); return(ByteArrayHelper.ByteToHexStr(data)); }
/// <summary> /// 显示文件浏览 /// </summary> private void FileBrower() { listView1.View = View.Details; listView1.LabelEdit = true; listView1.AllowColumnReorder = true; //listView1.CheckBoxes = true; listView1.FullRowSelect = true; listView1.GridLines = true; listView1.Sorting = SortOrder.Ascending; listView1.Clear(); listView1.Columns.Add("文件名", listView1.Width / 3, HorizontalAlignment.Left); listView1.Columns.Add("大小", listView1.Width / 3, HorizontalAlignment.Left); listView1.Columns.Add("文件夹", listView1.Width / 3, HorizontalAlignment.Left); //条目表 byte[] EntryTablesBuffer = new byte[_ZipEntity.EntrysTableLen]; Array.Copy(_ZipEntity.Buffer, _ZipEntity.HeadLen, EntryTablesBuffer, 0, _ZipEntity.EntrysTableLen); //开始遍历Entry int iTablesOffBits = 0; int iFilesOffBits = 0; uint iCount = 1; while (iCount <= _ZipEntity.EntryCount) { uint EntryLen = BitConverter.ToUInt32(EntryTablesBuffer, iTablesOffBits); uint FileLen = BitConverter.ToUInt32(EntryTablesBuffer, iTablesOffBits + sizeof(uint) * 2 + sizeof(UInt16) * 2); byte[] temp = new byte[EntryLen - FileLen]; Array.Copy(EntryTablesBuffer, iTablesOffBits, temp, 0, EntryLen - FileLen); Entry _entry = new Entry(temp); string FileDir = BitConvertHelper.Byte2String(_entry.EntryDir, 0, _entry.EntryDirLen); string FileName = BitConvertHelper.Byte2String(_entry.EntryName, 0, _entry.EntryNameLen); iTablesOffBits += (int)(EntryLen - FileLen); iFilesOffBits += (int)_entry.FileLen; iCount++; ListViewItem item = listView1.Items.Add(FileName); item.SubItems.Add(FileLen.ToString()); item.SubItems.Add(FileDir); } }
/// <summary> /// 写入一个指定类型的值 /// </summary> /// <param name="value">指定类型的值</param> public void WriteBitFlag(BitFlag value) { *&_startData[_currentOffset] = BitConvertHelper.ConvertToByte(value); _currentOffset += Size.BitFlag; }