Как разумно хранить большое количество сериализованных двоичных файлов в C #? - PullRequest
2 голосов
/ 18 сентября 2010

Я сериализую большое количество объектов в двоичные файлы, однако я хочу, чтобы все было аккуратно организовано, и не хочу, чтобы сотни файлов в папке.Есть ли способ сгруппировать их в zip-файлы, а затем получить доступ к отдельным файлам внутри этого zip-файла?

Например, скажем, я создал 100 двоичных файлов и сжал их.Смогу ли я получить доступ к одному файлу в этом zip-архиве и десериализовать его, не разархивируя все?

Ответы [ 2 ]

1 голос
/ 18 сентября 2010

Да, zip имеет архивную директорию, которая позволяет переходить к определенному файлу.Если вы собираетесь тратить гораздо больше времени на чтение из архива, чем на его изменение, это должно быть эффективно.Если вам нужно иметь возможность фиксировать изменения обратно в энергонезависимое хранилище, то лучше использовать другой формат, кроме zip.

Еще один подход, который вы можете попробовать, - это хранить большие двоичные объекты (большие двоичные объекты) в облегченном виде.базы данных.

0 голосов
/ 18 сентября 2010

Вы можете использовать HDF5 , формат файла для структурированного хранилища и набор библиотек для работы с ним.

Я до сих пор никогда не использовал его, но я должен принять его в будущем проекте. Цитирование с их сайта:

HDF5 - это модель данных, библиотека и формат файла для хранения и управления данные. Поддерживает неограниченное разнообразие типов данных, и разработан для гибкого и эффективного ввода-вывода и для больших объемов и сложных данных. HDF5 является портативным и расширяемым, позволяя приложениям развиваться в их использование HDF5. Технология HDF5 Пакет включает в себя инструменты и приложения для управления, манипулирования, просмотра, и анализ данных в формате HDF5

Технологический пакет HDF5 включает в себя:

  • Универсальная модель данных, которая может представляют очень сложные объекты данных и большое разнообразие метаданных.

  • Полностью переносимый формат файла с нет ограничений на количество или размер данных предметы в коллекции.

  • Программное обеспечение библиотека, которая работает на диапазоне вычислительные платформы, с ноутбуков для массово параллельных систем, и реализует высокоуровневый API с C, Интерфейсы C ++, Fortran 90 и Java.

  • Богатый набор интегрированной производительности функции, которые позволяют время доступа и оптимизация дискового пространства. инструменты и приложения для управления, манипулирование, просмотр и анализ данные в сборе.

Я знаю, что они предоставляют упаковщик для .net , и вы также можете найти c # пример его использования.

...