[gelöst] Dateitypen aus Dateiheader lesen



  • Als erstes mal ein Hallo liebe Com (erster Beitrag ;))!

    Ich werde mir wohl ein blaues Auge holen weil ich mir nicht zu 100% sicher bin ob die Frage keine WinAPI Frage ist. Dafür schon mal sry!

    Gibt es schon eine fertige Funktion um Dateitypen zu ermitteln ohne das ich eine Endung habe bzw. dieser vertrauen kann!

    Hintergrund ist das ich über eine verschlüsselte ISDN Verbindung Dateien bekomme denen ich keinen Typen zuordnen kann und diese müssen weiter verarbeitet werden. Aufschluss über den Dateityp bekomme ich im Moment nur über die Linux/Unix funktion file welche ich umständlich aufrufe.

    Unsere Linux/Unix Server werden aber demnächst abgeschaltet so das mir diese Möglichkeit geraubt wird.

    Hat jemand eine Idee wie ich das unter Win lösen kann? Platformunabhängig wäre mir zwar am liebsten weil ich es dann sofort einbauen könnte und ruhe bei der Umstellung hätte aber eine Win only Lösung geht zur not auch!

    Besten Dank schon mal!



  • squirrel schrieb:

    Als erstes mal ein Hallo liebe Com (erster Beitrag ;))!

    Ich werde mir wohl ein blaues Auge holen weil ich mir nicht zu 100% sicher bin ob die Frage keine WinAPI Frage ist. Dafür schon mal sry!

    Gibt es schon eine fertige Funktion um Dateitypen zu ermitteln ohne das ich eine Endung habe bzw. dieser vertrauen kann!

    Hintergrund ist das ich über eine verschlüsselte ISDN Verbindung Dateien bekomme denen ich keinen Typen zuordnen kann und diese müssen weiter verarbeitet werden. Aufschluss über den Dateityp bekomme ich im Moment nur über die Linux/Unix funktion file welche ich umständlich aufrufe.

    Unsere Linux/Unix Server werden aber demnächst abgeschaltet so das mir diese Möglichkeit geraubt wird.

    Hat jemand eine Idee wie ich das unter Win lösen kann? Platformunabhängig wäre mir zwar am liebsten weil ich es dann sofort einbauen könnte und ruhe bei der Umstellung hätte aber eine Win only Lösung geht zur not auch!

    Besten Dank schon mal!

    Das musst du schon nach Spezifikation manuell machen. Für manches gibts ja auch libs. (zb libpng )
    Oder du forkst "file" <- linux programm welches es vielleicht auch für windows gibt 😕

    www.wotsit.org



  • Ich bin nicht sicher aber in der WinAPI wirst du nix finden weil Windows ziemlich dümmlich nur nach Dateiendungen schaut ... 🙄



  • SoIsDat schrieb:

    Ich bin nicht sicher aber in der WinAPI wirst du nix finden weil Windows ziemlich dümmlich nur nach Dateiendungen schaut ... 🙄

    Hab ich mir schon gedacht, sonst würden die Brüder von M$ das in ihren Betriebssystemen ja auch anders lösen 😢

    @specman: Danke das ist wenigstens eine Aussage! (Der link hilft da schon ein wenig weiter. Gibt es noch eine Quelle für mehr Spezifikationen von Dateien oder muss ich wirklich alle ca. 100 Dateitypen einzeln nachforschen?)



  • squirrel schrieb:

    SoIsDat schrieb:

    Ich bin nicht sicher aber in der WinAPI wirst du nix finden weil Windows ziemlich dümmlich nur nach Dateiendungen schaut ... 🙄

    Hab ich mir schon gedacht, sonst würden die Brüder von M$ das in ihren Betriebssystemen ja auch anders lösen 😢

    @specman: Danke das ist wenigstens eine Aussage! (Der link hilft da schon ein wenig weiter. Gibt es noch eine Quelle für mehr Spezifikationen von Dateien oder muss ich wirklich alle ca. 100 Dateitypen einzeln nachforschen?)

    Tut mir leid neben google kenne ich nur wotsit 😞
    Welche Typen sind es denn? Für Bilder gibt es sicher unzählige libs ...

    Die hässlichte Lösung wäre wohl ein file-fork:

    [I] sys-apps/file
    Available versions: 4.21-r1 4.23 ~4.25 ~4.26 ~5.00 ~5.00-r1 ~5.00-r2 ~5.01 ~5.02 ~5.03 {python}
    Installed versions: 4.23(16:26:44 31.08.2008)(python)
    Homepage: ftp://ftp.astron.com/pub/file/
    Description: identify a file's format by scanning binary data for patterns


  • Administrator

    Was ist das denn für ein Übermittlungsprotokoll, welches Dateien verschickt, aber keine Angaben zum Typ macht? Kann man dieses Protokoll nicht erweitern? Wäre irgendwie die einleuchtenste Lösung. Fast jedes Protokoll, welches ich kenne für das Verschicken von Dateien, gibt irgendwo den Typ mit an.
    Könnte man notfalls, falls das Protokoll nicht erweitert werden darf, vor dem Verschicken die Dateien in einen Dateicontainer verpacken, in welchem die Dateitypen angegeben sind? Also sowas wie ein tar File?

    Grüssli



  • Das Übermitlungsprotokoll ist ein von den "SAP Jungs" programmiertes Protokoll und an diesem dürfen keine Veränderungen gemacht werden. Es wurde auch zweckentfremdet aber steht leider nicht zur Diskusion.

    Das mit dem Container ist ein guter Ansatz. Allerding muss ich das erst noch in erfahrung bringen da ich ja nur die Daten empfange!

    Aber danke für den Wink!



  • Das File Tool verwendet ja die libmagic, welche ebenfalls nach Windows portiert wurde, zu finden ist das Projekt hier. Dann kannst du diese auch direkt benutzen, statt file aufzurufen (und wohl die Ausgabe zu parsen).



  • danke danke denke 😉

    Hab ichs schon gesagt?

    Danke!

    ps: hat schon mal jemand file und Linux gegoogelt? 29.300.000 treffer 😉


Anmelden zum Antworten