Structured Storage



  • Servus, ich bin neu hier,

    ich komme hier nicht wirklich weiter. Ich suche eine Möglichkeit, eine komplette Ordner/Datei-Struktur in eine Datei zu speichern und zu lesen. Es gibt ja solche Formate... Da sind zum einen die Archive a la ZIP und RAR die eher für "Write once, read many" gedacht sind. Und es gibt auch die Images, die virtuellen Dateisysteme. Unter Mac arbeite ich gerne z.B. mit DMG.

    Jedenfalls suche ich nach einer Möglichkeit, das programmatisch zu machen, in C++. Ich komme eigentlich von der Objective-C Seite.

    Jedenfalls habe ich mich mal schlau gemacht und z.B. die libgsf Library gefunden. Die kann die guten alten (reifen) Windows OLE Dateien lesen und schreiben. Leider bekomme ich die unter Mac OS X nicht kompiliert.

    Es gibt auch eine Klasse "POLE" die Plattformunabhängig auf diese OLE-Container zugreifen können soll. Leider sieht es nicht so aus, als können sie auch neue, leere Container erstellen. Keine Ahnung warum Leute solch halbfertigen Mist online stellen und dann 'n Dicken markieren und sich in Wikipedia eintrage etc. Aber das' ja eher Offtopic.

    Hat da jemand Erfahrung? Zur Not arbeite ich auch erstmal mit 'nem ISO Image Z.Zt. schreibe ich mit XCode und kompiliere zur Not auch mit gcc. Nachhaltig muss die Lösung plattformunabhängig sein.

    Grüße, Chris



  • Du stellst nicht wirklich eine Frage (ausser "Hat da jemand Erfahrung?" -- Erfahrung mit was genau? Die libgsf kompilieren?).
    Deine Motivation ist unklar (Was genau willst du eigentlich, und wieso?).

    Was ist z.B. der Grund dass du keine .zip File verwenden willst?



  • Irgendwie geht hier einiges durcheinander.

    libgfs ist eine Linux-Bibliothek aus dem Gnome-Projekt
    OLE ist eine Windoof-Technologie

    Und was soll das alles auf OSX?



  • Ja das stimmt. Vielleicht bin ich gerade etwas ratlos. Ich suche eine leichte, portable Klasse, die mich so ein virtuelles Dateisystem erstellen lässt. Meine Frage ist also: Kennt jemand soetwas?

    Warum ich kein Archiv nutzen will: Eben, "Write once, read many". Vor allem, weil ich die Block- und Metadaten des Dateisystem brauche.

    Mein Ziel: Ich möchte blockweise Paritätsdaten speichern.

    Wäre nett, wenn jemand einen Tipp für eine solche Klasse hätte.

    Grüße, Chris

    @michael Ja klar ist OLE von MS. Deshalb gibt es libgsf aus dem GNOME.



  • @chris.pillen
    Es ist relativ uninteressant wenn du uns sagst was du nicht machen willst. Interessanter wäre wenn du uns sagst was du machen willst.

    Was z.B. soll "blockweise Paritätsdaten speichern" heissen? Von welchen Files? Wie oft und in welcher weise werden diese upgedated?
    Auf welchen Plattformen soll/muss das ganze laufen?
    Muss es ein einzelnes File sein, oder wäre es auch OK wenn dahinter eine normale Partition liegt, und du nur alle Lese- und Schreibzugriffe mitbekommst, so dass du die Parity/ECC/... Daten prüfen bzw. aktualisieren kannst?

    Je nachdem was du genau brauchst kommt z.B. FUSE in Frage. Oder eben auch nicht. Nur das Rumraten ist halt relativ uninteressant.

    Wenn die Files klein genug sind und/oder die Performance nicht wirklich wichtig ist käme auch ne embedded Datenbank ala SQLite in Frage (Einfach eine Block-Tabelle wo in einem Feld der Blockinhalt steht und in einem anderen die Prüfsumme. Und dazu noch eine FileBlockLink Tabelle wo drinnen steht aus welchen Blöcken sich ein File zusammensetzt.)



  • Okay... ist eins dieser Drecksforen. Ich such mir 'n anderes, in dem ich nicht erst meine Lebensgeschichte posten muss um Hilfe zu bekommen und nicht irgendwelche Querulanten einen auf Wichtig machen. Habt noch viel Spaß aneinander! 👎



  • Okay... du bist einer dieser Dummmenschen, die meinen sie wüssten alles besser.

    Freund...

    Du stellst da eine ziemlich spezielle Frage. Es ist also davon auszugehen dass das keiner hier wissen wird. Wüsste ich ein auf deine magere Beschreibung perfekt passendes Format bzw. eine Library, dann hätte ich das schon gepostet. Weiss ich aber nicht. Also mach' ich mir die Mühe, zu versuchen dir ein paar der relevanten Informationen aus der Nase zu ziehe, weil du selbst zu doof bist diese dazuzuschreiben.

    Entschuldigung dass ich dir helfen wollte!

    ps:
    5 Sekunden googeln:
    http://fossil.wanderinghorse.net/repos/whefs/index.cgi/wiki/whefs
    http://sourceforge.net/projects/microvfs/
    Erfahrung hab' ich aber keine damit => ich kann dir nicht sagen ob die "leicht und portabel" ist. (Schon gleich doppelt nicht weil du nichtmal bereit warst genauer zu definieren was "portabel" für dich bedeutet.)


Anmelden zum Antworten