RE:Archivos ascii y binario
Si entiendo bien tu planteamiento para detectar si el fichero es de texto o binario se debe leer los primeros caracteres del fichero y analizarlos.
Las reglas son:
Para ficheros de texto los valores ASCII van entre 32 al 126 más el 13 y el 10 que corresponden al salto de linea.
Puede apadecer algun valor superior si hay alguna vocal con acento o una "Ñ", lo que es seguro es que no hay ningun valor inferior a 32 escepto los anteriormente dichos.
Dentro de los binarios se puede descubrir si es un ejecutable, un empaquetado (ZIP, ARJ, RAR, etc),una base de datos (DBF), u otros tipos de ficheros analizando el contenido del inicio del fichero. La fiabilidad es muy alta, todo depende de lo fino que se analice.
Un saludo desde Barcelona, España.