Подтвердить что ты не робот

Получить размер файла из массива байтов (без сохранения на диск)

У меня есть массив байтов, и я хочу рассчитать размер файла, если я напишу эти байты в файл. Возможно ли записать файл на диск?

4b9b3361

Ответ 1

Как насчет array.Length? Похоже на размер в байтах.

Ответ 2

Um, yes:

int length = byteArray.Length;

Байт в памяти будет байтом на диске... по крайней мере в терминах файловой системы более высокого уровня. Вам также необходимо потенциально рассмотреть, сколько отдельных блоков/кластеров будет использоваться (и накладные расходы для записи в каталоге), и любое сжатие, которое может предоставить операционная система, но неясно, из того, что вы после этого.

Если вы действительно хотите знать "размер на диске" в отличие от размера файла (так же, как Windows может показывать два числа), я подозреваю, что вам действительно нужно записать его на диск, а затем используйте API Win32, чтобы узнать фактический размер на диске.

Ответ 3

Array.Length даст ваш общий размер, выраженный в байте.
Физический размер на диске может быть немного больше, учитывая размер кластера.