public int Write( BinaryWriter writer ) { if ( m_record == null ) { m_record = new PathTableRecord(); m_record.Length = 1; m_record.Identifier = new byte[1] { 65 }; } writer.Write( m_record.Length ); writer.Write( m_record.ExtendedLength ); writer.Write( m_record.ExtentLocation ); writer.Write( m_record.ParentNumber ); writer.Write( m_record.Identifier ); if ( m_record.Length%2 == 1 ) { writer.Write( (byte)0 ); } return 8+m_record.Length+( m_record.Length%2 ); }
private void SetPathTableRecord( UInt32 extentLocation, UInt16 parentNumber, byte[] identifier ) { if ( m_record == null ) { m_record = new PathTableRecord(); } m_record.Length = (byte)identifier.Length; if ( identifier.Length > 255 ) { throw new Exception( "Depasire!" ); } m_record.Identifier = identifier; m_record.ExtentLocation = extentLocation; m_record.ParentNumber = parentNumber; if ( m_volumeDescriptorType == VolumeType.Suplementary && ( identifier.Length>1 || identifier[0]!=0 ) ) { m_volumeDescriptorType = VolumeType.Primary; this.VolumeDescriptorType = VolumeType.Suplementary; } }