2010-03-05 2 views
1

J'ai une application où il y a plusieurs processus. Ils partagent la lecture et l'écriture d'un ensemble de fichiers qui se développe au fil du temps. Je préfère ne pas exposer des milliers de fichiers à l'environnement de l'utilisateur, car il serait beaucoup plus facile pour eux de modifier ou de supprimer accidentellement l'un d'entre eux. Existe-t-il une API qui autorise des écritures et des lectures raisonnablement performantes dans un système de fichiers virtuel qui est finalement un seul fichier sur le disque dur? J'en aurais besoin en C# ou en C++.Vous cherchez un bon moyen d'écrire plusieurs "fichiers" virtuels dans un fichier système

Répondre

0

J'utiliserais SQLite, ou n'importe quel magasin de valeurs-clés avec de bonnes valeurs BLOB.

0

Il y a un genre de choses appelées magasins clé-valeur qui font exactement ce que vous voulez. BerkeleyDB et Tokyo Cabinet/Tokyo Tyrant sont de bons exemples. Ils sont plus simples et plus rapides que les bases de données relationnelles. Les clés qu'ils stockent sous sont des chaînes d'octets arbitraires, de sorte que vous pouvez utiliser des chemins de type système de fichiers. Si vous utilisez une organisation B-tree, vous pouvez faire des requêtes de préfixe, pour implémenter quelque chose comme une liste de répertoires. Vous mentionnez avoir besoin d'un accès à partir de plusieurs processus: je ne suis pas sûr de la façon dont BerkeleyDB gère cela, mais Tokyo Tyrant le fait bien.

Questions connexes