static StringBuilder ToBase64StringBuilderWithLine (byte [] inArray, int offset, int length)
{
StringBuilder sb = new StringBuilder ();
int remainder;
int full = Math.DivRem (length, MaxBytesPerLine, out remainder);
for (int i = 0; i < full; i ++) {
byte[] data = ToBase64Transform.InternalTransformFinalBlock (inArray, offset, MaxBytesPerLine);
sb.AppendLine (Encoding.ASCII.GetString (data));
offset += MaxBytesPerLine;
}
// we never complete (i.e. the last line) with a new line
if (remainder == 0) {
int nll = Environment.NewLine.Length;
sb.Remove (sb.Length - nll, nll);
} else {
byte[] data = ToBase64Transform.InternalTransformFinalBlock (inArray, offset, remainder);
sb.Append (Encoding.ASCII.GetString (data));
}
return sb;
}
#endif