ストリームの長さを変更したい場合は、SetLengthメソッドを呼び出します。 SetLengthメソッドで現在のStreamの長さよりも短くする場合、その内容は切り捨てられます。 同時に、ストリームの書き込み・読み込み位置はストリームの終端に移動します。 逆に現在のStreamの長さよりも長くする場合、拡張した部分の内容は定義されません。 ストリームの読み込み・書き込み位置は変わりません。
Positionプロパティとは異なりLengthプロパティは読み取り専用なので、このプロパティに値を設定してストリームの長さを変更することは出来ません。
長さが変更できないストリームに対してSetLengthを呼び出そうとした場合には、例外NotSupportedExceptionがスローされます。 例えば、NetworkStreamや標準入出力のストリーム、固定長に設定されたMemoryStreamなどは長さが変更できないストリームです。