2010-11-27 6 views
0

Connaissez-vous une bibliothèque/framework/embeddedEngine pour stocker des données dans un fichier binaire? Quelque chose comme système de fichiers dans un fichier. Il doit également prendre en charge les outils de fragmentation des données après suppression/mise à jour. Préférez les langages C++ ou C#. Plate-forme WindowsSystème de fichiers intégrable?

Merci pour tout conseil !!!

+0

Voulez-vous dire * defragmenting * data? Et y a-t-il une raison pour laquelle un fichier compressé (comme un ZIP) ne fonctionnera pas pour vous? Même Microsoft a récemment abandonné le concept de «système de fichiers mini dans un fichier» avec les versions ultérieures d'Office. –

+0

@Cody: "Défragmenter" n'a pas de sens en ce sens. Je pense qu'il veut dire qu'il doit être capable d'insérer des données au milieu du fichier sans écrire le fichier entier sur le disque par la suite. –

+0

@Billy: Oui, vous avez raison. Je veux insérer des données, supprimer des données et éviter la défragmentation;) – Edward83

Répondre

3

ESENT, you can check out my framework pour C#. Contrairement à SQLite, il est OK de contenir 1 Go de données dans un seul champ.

+0

Err ... * pourquoi * voulez-vous stocker 1 Go de données dans un seul champ? (Ne pas déchirer sur la bibliothèque, il semble juste qu'un blob binaire de 1 Go a d'autres problèmes que de ne pas être manipulé par la plupart des bibliothèques de sérialisation) On dirait une solution à la recherche d'un problème. (Mais j'ai fait +1 simplement parce que c'est une autre solution ici) –

+1

@ "Billy ONeal", "tu peux" ne veut pas dire "tu devrais". Nous ne savons rien du problème de l'Edward: peut-être a-t-il besoin de manipuler le jeu de données de la taille d'un téraoctet produit par son télescope spatial? Ou peut-être qu'il a besoin d'un stockage pour répliquer toutes les données stockées sur sa partition Windows? ESENT est juste plus polyvalent que SQLite. En outre, tout le monde n'a pas besoin d'un moteur SQL: SQL = surcharge et complexité supplémentaires. – Soonts

+0

@Soonts: assez bien. OTOH, je ne pense pas que "embeddable" serait une exigence s'il manipulait de tels jeux de données. Bien que je ne vois pas comment SQL == surcharge supplémentaire et la complexité. –

4

SQLiteSQLiteSQLite n'est pas exactement un système de fichiers, mais il fait ce que vous demandez en ce qu'il est embarquable, et a n'importe quel outil que vous pourriez vouloir (étant donné qu'il est, bien sûr, SQL). De plus, tout le code est du domaine public, donc vous pouvez l'utiliser à peu près n'importe quoi.

0

Sur quelle plateforme? Sous Linux, vous pouvez utiliser un système de fichiers virtuel.

+3

"Plate-forme Windows", à partir du texte de la question. C# tag est un autre indice. –

1

Consultez notre SolFS. C'est le système de fichiers virtuel, écrit en C (avec une liaison JNI pour Java) et utilisable sur la plupart des plates-formes modernes, y compris Android et iOS.