Dateityp ermitteln
-
Hallo Leute,
hab schon google durchsucht und auch hier die suchfunktion belästigt ... kein treffer.
Ich versuche unter Linux den Typ einer Datei zu ermitteln (programatisch). Ich würde gern sagen können ob es eine Text-, Doc-, Ausführbare-, oder sonstiges- Datei ist.
Vielen Dank schon mal im Voraus.
-
-
Eigentlich habe ich gemeint, wie man den Dateityp in einem C++ Programm bestimmt. wie z.B.
getFileType(fileName)
Aber trotzdem danke. Werde mir wohl die Quelldatei von file anschauen müssen.
-
So eine Funktion müsste die gesamte Logik von file klonen, denn auf Unix Systemen hat die Dateiendung keine Bedeutung.
Eine Bibliothek, die sowas macht ist kio aus dem KDE Projekt, wo man folgende Funktion hat:
KMimeType::findByContent()
Man sollte auch lieber über Mimetypes als von Dateitypen sprechen. Bei Dateitypen denke ich an Dinge wie Blockdevice, Characterdevice, Directory, Plain File, ...
-
sonst binde doch einfach man: file(1) in dein Programm ein. Das sollte einiges an Arbeit sparen. Aber auch einige Kompatibilitäts-Probleme verursachen können.
-
Ich weiß nicht ob du das meinst,
aber schaue dir mal "stat","fstat" oder "access" an !über stat,fstat,access bekommst Du die zugriffsrechte und darüber
ob die datei ausführbar ist oder nicht !vielleicht hilft Dir das ja erstmal weiter ?
stat fstat access
-
Achtung, man: access(1) ist aber nicht man: access(2)!
Aber wenn es nur darum geht festzustellen, ob es sich um eine ausführbare oder nicht-ausführbare Datei handelt, kann man wie gesagt man: stat(2) und co nehmen.
-
Danke Leute. Natürlich meine ich mit dem Dateityp eigentlich den MIME Typ. Hab die stat() Methode bereits eingebunden, was mir fällt ist jetzt nur noch der MIME Typ.