Schon mal vorneweg: Ich hab eigentlich keine Ahnung...
Möglichkeit für
ASCII-Dateien: Es dürfen nur bestimmte Zeichen vorkommen(welche, sollten klar sein)
Möglichkeit für JPEG-Dateien: Header suchen(wie der aussieht steht bestimmt irgendwo(
RFC, Wiki, google, ...)), vergleichen; Inhalt(größe) mit Header vergleichen
Auf jeden Fall wirst du für jedes Format ne neue Routine schreiben müssen und die wird in den wenigsten Fällen 100%ig sagen können, ob die Datei nun defekt ist, oder nicht. Propietäre Formate und Binaries machen natürlich noch mehr Probleme...
mfg
Christian