2010-04-28 16 views
15

Esiste una libreria java simile al comando file di unix?Esiste una libreria java equivalente al comando file in unix

cioè:

$ file somepicture.png 
somepicture.png PNG image, 805 x 292, 8-bit/color RGB, non-interlaced 

Il comando file è un bel strumento così. Ho bisogno di qualcosa che possa dirmi se il file è davvero quello che voglio che sia. (ad esempio un'immagine, un documento, ecc.)

So che posso eseguire il comando file, ma sto cercando una libreria java, non eseguendo il comando unix effettivo.

+0

Ho finito per usare Apache Tika. JMimeMagic era scarsamente documentato. (Non che Tika fosse migliore, ma l'API era più facile IMO) –

risposta

3

Si potrebbe guardare jmimemagic (tutorial). Lo stiamo usando da un po 'per convalidare le immagini caricate. Nessun problema finora.

2

Non sono sicuro che sia esattamente quello che stai cercando, ma il seguente link può aiutarti a:

http://www.rgagnon.com/javadetails/java-0487.html

+0

+1 per dare la soluzione solo JDK. Non sono sicuro di quanto sia buono quel metodo, ma potrebbe essere quello che l'utente sta cercando. –

+2

@bkail 'javax.activation.MimetypesFileTypeMap' controlla solo l'estensione del file che sicuramente non è un modo affidabile per determinare" se il file è realmente quello che voglio che sia " – sfussenegger

+0

Sì, la soluzione JDK non funziona come' file' in unix. 'file' guarda davvero il file e dice di cosa si tratta. Non interessa l'estensione come Windows fa –

1

Dai un'occhiata allo mime-utils. Funziona con il contenuto e/o con le estensioni.

4

Dal momento che Java 1.7 è possibile utilizzare Files.probeContentType() per sondare un file. Fuori dalla scatola utilizza il meccanismo sulla piattaforma per indovinare il tipo di contenuto, oppure puoi collegare il tuo rilevatore se lo desideri.

Problemi correlati