Мне нужно сделать файл, который содержит иерархический набор данных.Данный набор данных представляет собой список файловой системы (имена каталогов, имена / размеры файлов в каждом каталоге, подкаталоги, ...).
Моим первым инстинктом было использование Json и выравнивание иерархии с использованием путейтак что парсер не должен повторять так много.Как видно из приведенного ниже примера, каждая запись представляет собой путь ("/", "/ child01", "/ child01 / gchild01", ...) и его файлы.
{
"entries":
[
{
"path":"/",
"files":
[
{"name":"File1", "size":1024},
{"name":"File2", "size":1024}
]
},
{
"path":"/child01",
"files":
[
{"name":"File1", "size":1024},
{"name":"File2", "size":1024}
]
},
{
"path":"/child01/gchild01",
"files":
[
{"name":"File1", "size":1024},
{"name":"File2", "size":1024}
]
},
{
"path":"/child02",
"files":
[
{"name":"File1", "size":1024},
{"name":"File2", "size":1024}
]
}
]
}
Тогда я подумал, чтоповторяя ключи снова и снова («имя», «размер») для каждого типа файлов отстой.Так что я нашел эту статью о том, как использовать Json, как если бы это была база данных - http://peter.michaux.ca/articles/json-db-a-compressed-json-format
Используя эту технику, у меня была бы таблица Json, такая как "Entry" со столбцами "Id", "ParentId",«EntryType», «Name», «FileSize», где «EntryType» будет 0 для каталога и 1 для файла.
Итак, на данный момент, мне интересно, будет ли sqlite лучшим выбором.Я думаю, что размер файла будет намного меньше, чем файл Json, но он может быть незначительным, если я использую сжатый формат Json-DB из статьи.Есть ли у вас какие-либо другие преимущества, кроме размера?