Zum Inhalt springen

c# Datei Typ Ermitteln


U-- °LoneWolf°

Empfohlene Beiträge

Hallo zusammen,

habe mir schon nen wolf gesucht :rolleyes: aber leider kann ich keine möglichkeit finden mit der ich den DateiTyp ohne die Erweiterung ermitteln kann.

Geht das?

Wenn ja wie?

und

Wenn nein

Wie funktioniert es auf dieser seite.

Dort kann man beliebeige dateien OHNE Endung angeben und es ermittelt welche Extension dazu gehört.

Schonmal Danke im Vorraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

habe mir schon nen wolf gesucht :rolleyes: aber leider kann ich keine möglichkeit finden mit der ich den DateiTyp ohne die Erweiterung ermitteln kann.

Geht das?

Wenn ja wie?

Hallo,

erstmal pauschal gesagt, ja es geht...

Windows identifiziert Dateintypen nach Endungen. (z.B. .xls, .doc, etc..)

Dies ist aber nur eine "verschleierung" dessen, wie es wirklich funktioniert.

Ich bin leider kein Windowsspezialist, aber unter Unix/Linux gibt es das kleine Programm namens "file". Ich zitiere jetzt einfach mal aus der man-page wie das Programm den Dateitypen herausfindet.

If a file appears to be in ASCII format, the file command examines the first 1024 bytes and determines the file type. If a file does not appear to be in ASCII format, the file command further attempts to distinguish a binary data file from a text file that contains extended characters.

Und genau so funktionert es :) Man liest den "Headerblock" der Datei aus indem genau spezifiert ist was es für ein Typ ist.

Ich gebe dir mal ein kleines Beispiel an Hand einer PDF Datei (unter Fedora Core 4):

1) Header mit strings anschauen (wie sieht so ein header aus)


[root@homefc4 ~]# strings /usr/share/ghostscript/Resource/pdfcorefont/chinese_s/00_ReadMe.pdf |more

%PDF-1.4

1 0 obj

/Type /Page

/Parent 23 0 R

/Resources 2 0 R

/Contents 3 0 R

/CropBox [ 0 0 612 792 ]

/MediaBox [ 0 0 612 792 ]

/Rotate 0

endobj

2) Programm file

[root@homefc4 chinese_s]# file 00_ReadMe.pdf

00_ReadMe.pdf: PDF document, version 1.4

und hier was das program genau macht (mittels strace)

lstat64("00_ReadMe.pdf", {st_mode=S_IFREG|0644, st_size=13016, ...}) = 0

open("00_ReadMe.pdf", O_RDONLY|O_LARGEFILE) = 3

read(3, "%PDF-1.4\r%\342\343\317\323\r\n1 0 obj\r<< \r/Typ"..., 65536) = 13016

_llseek(3, 0, [0], SEEK_SET)            = 0

close(3)

Hoffe es hilft dir unter Windows auch weiter.....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, gibt es leider nicht. Zudem ist nicht jedes Dateiformat öffentlich spezifiziert. Du musst also für jeden Dateityp, den du erkennen willst, genau wissen, woran du ihn eindeutig erkennst. Unbekannte Dateitypen kannst du grundsätzlich nicht erkennen. Denn bestimmte Dateitypen (z.B. txt) kannst du eigentlich nur daran erkennen, dass sie kein bestimmtes Format haben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm schade das problem ist halt das die dateien von einem jsp generiert werden. Der IE macht auch irgendwie dierekt ein .pdf oder so daraus nur weiß ich nicht wie ich das machen muss. In dem zusammenhang habe ich nur mal was vom Content Disposition Header gesehen. Leider weiß ich nicht wie ich den beim Download Auslesen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ein blick in die allenfalls unter dieser position vorhandenen datei /usr/share/misc/magic wäre halt zweckmässig, da im magic-file alle für "file" relevanten signaturen stehen.

auszug bzw. beispiel:

amstel@s2$ grep PDF /usr/share/misc/magic

0       string          PDF                     Macintosh PDF File (data)

>65     string          PDF\            (Portable Document Format)

0       string          %PDF-           PDF document

0       string  !<PDF>!\n               profiling data file

amstel@s2$

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie ich schon schrieb: Um ein Dateiformat nur anhand der (binären) Daten erkennen zu können, musst Du für die zu erkennenden Formate Merkmale kennen, die idialerweise auf jede Datei des jeweiligen Typs zutreffen. Dies können unter anderem bekannte Bytefolgen, z.B. aus dem Header, sein. Welche Merkmale auf die Dateien eines Typs zutreffen, musst Du entweder wissen, oder Du kannst versuchen, Merkmale mit statistischen Mitteln zu bestimmen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, soweit ich weiß, nicht. Wäre auch ziemlich sinnlos, denn praktisch niemand muss so viele Dateitypen unterscheiden können, dass eine umfassende Liste erforderlich wäre. Der Aufwand steht in keinem Verhältnis zum Nutzen.

Beschreib doch mal das eigentliche Problem, nicht das, was du für die Lösung hältst. Warum hast du überhaupt eine Datei ohne Erweiterung?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also wir haben da so ein nettes cms.

Um unser Hopmepage auf cd Weitergeben zu können schreibe ich gerde einen Webexport mit angepasster ausgage und einenm kleine Tracking tool das die seite speichert.

Das problem besteht nun darin das Medien über ein JSP ausgegeben werden.

Leider ist hier wohl ein fehler der bereits der Firma X Gemeldet ist

(rückmeldung war bei uns ist alles i.o. das ist ein Microsoft Prob. ...). Denn es fehlt der Content Typ bzw. Dosposition. Somit habe ich einen Kryptischen Dateinamen und keine Endung. Jetzt wollte ich wenigstens irgendwie die endung ermitteln.

Ergänzung:

Den HTTRacker habe ich schon benutzt und er wird derzeit auch eingesetzt. Leider verzert er aber beim Tracken manchmal die Navigation.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das problem besteht nun darin das Medien über ein JSP ausgegeben werden.

Leider ist hier wohl ein fehler der bereits der Firma X Gemeldet ist

(rückmeldung war bei uns ist alles i.o. das ist ein Microsoft Prob. ...). Denn es fehlt der Content Typ bzw. Dosposition. Somit habe ich einen Kryptischen Dateinamen und keine Endung. Jetzt wollte ich wenigstens irgendwie die endung ermitteln.

so wie ich das jetzt verstehe, gibt die JSP-anwendung falsche oder unvollständige HTTP-header zurück, richtig? auf welchem server läuft denn das CMS bzw. das JSP?

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...