Я пытаюсь предсказать строковое представление размера байтового массива с кодировкой base64.
Я придумал приведенную ниже формулу, однако длина фактического encodedString
на 4 больше, чем base64EncodedSize
.
Вся идея здесь состоит в том, чтобы вычислить/предсказать, какой размер закодированной строки будет для данного byte[]
. Я бы предпочел не преобразовывать byte[
] в базовую строку 64, чтобы определить ее длину.
FileInfo pdfFile = new FileInfo(@"C:\TEMP\1.pdf");
long originalSizeInBytes = pdfFile.Length;
String encodedString = Convert.ToBase64String(File.ReadAllBytes(pdfFile.FullName));
long base64EncodedSize = (originalSizeInBytes / 3) * 4;
----------------------------------------------------------------------------------
- Results -
-----------------------------------------------------------------------------------
originalSizeInBytes 913663 long
base64EncodedSize 1218216 long
encodedString.Length 1218220 int
base64EncodedSize 1218216 long
encodedString.Length - base64EncodedSize 4 long