Hi, ich kann dir auch nicht endgültig helfen, aber ich versuchs mal so gut ich kann:
Woher soll den der Computer wissen, wie die Datei codiert ist? Im Prinzip ist ja auf der Festplatte alles in Bit gespeichert und wenn man eben anstatt einzelener Bits acht auf einmal liest, kann man dass komfortabel in ein Zeichn umwandeln. Ich denke also, dass es gar nicht geht, ohne irgendeinene Prüfmethode über die Datei laufen zu lassen, die schaut, ob irgendein bestimmtes Dateiformat vorliegt.
Hier hilft dir sicher dieser Link weiter:
http://whatis.techtarget.com/fileFormatA…3,sid9,00.html.
Achtung: Es kann sein, dass ich hier totalen Stuss gequatscht habe und das BS automatisch immer zu jeder Datei speichert, wie sie codiert ist, aber wie gesagt: Das glaube ich eigentlich nicht.
Nein, nein, du hast das schon ziemlich gut erklärt. Für das OS macht es keinen unterschied, ob es sich um ein ASCII-File, ein Binary oder ein .doc-Dokument handelt.
Rausbekommen tut man das nur, indem man sich das Format einer Datei anguckt. Oft aber auch an der Endung. (bsp.: .exe -> höhstwarscheinlich Binary)
Bei ASCII-Files kann man _meist_ davon ausgehen, das sie mit einer ((char)0) enden und dieses Zeichen nicht mitten im Text zu finden ist. Daran kann man eigentlich ganz gut ASCII-Dateien erkennen, aber 100% sicher ist das auch nicht.
Unter Unix (und vergleichbaren) kann man außerdem noch über das execute-Recht etwas rauslesen, aber selbst dann ist nicht klar, ob man ein nun ein Binary oder ein Batch-File hat.
Edit: -------
Darf eine Datei unter Windows/Linux/... eine Dateigröße (in Bit) haben, die nicht durch 8 teilbar ist - wenn ja, dann wäre dass ein Kriterium, das in 8 von 9 Fällen helfen würde.
Also in Bit sowieso, da die kleinste Einheit IMMER ein Byte ist. (Bitweise geht zwar auch, belegt aber trotzdem immer mindestens ein byte)
Ich denke du meinst Byteweise. Das wäre mir aber nicht bekannt, das Binarys unter Win/Unix eine durch 8 teilbare Größe hätten. Aber das muß ja nichts heißen... ;D