У меня есть приложение, в котором я довольно быстро сохраняю большое количество двоичных данных. В настоящее время у меня есть два разных канала данных, размер которых может увеличиваться независимо, поэтому я храню их в двух файлах. Однако эти два файла тесно связаны друг с другом (ссылки на идентификаторы имеют смысл только в контексте другого файла), поэтому было бы предпочтительнее для целей транспортировки и правильной связи хранить/переносить их как один файл. файл.
Существует ли какой-либо стандартный способ на уровне ОС или в .NET BCL для создания двух объектов FileStream, которые могут независимо расти в одном и том же базовом файле?
Я рассматривал возможность реализации какой-то схемы разбивки/разбиения на страницы, но мне кажется, что это в основном дублирует то, что файловая система уже делает под капотом, поэтому я бы предпочел, чтобы файловая система управляла этим, если это возможно.
Другой альтернативой является использование инструмента постобработки для объединения двух файлов после завершения записи. Это управляемо, но не идеально.
Я также экспериментировал с некоторыми облегченными вариантами базы данных, но они оказались слишком медленными для того, что я делаю.
Идеальным решением этой проблемы было бы масштабирование до более чем двух потоков данных в одном файле, хотя для моих текущих целей и двух было бы достаточно.