2012-09-13 40 views
15

estoy usando java se7 en mac, la vista previa de Oracle.por qué Files.probeContentType devuelve nulo

Mi problema es que "Files.probeContentType" devuelve nulo ... ¿es posible que sea debido al estado inicial de se7 para mac? Mi código:

if(directory == null) return; 
String content = null; 
try { 
    content = Files.probeContentType(directory.toPath()); 
} catch (IOException e) { 
    JOptionPane.showMessageDialog(main, e.toString()); 
    return; 
} 
if(content == null) 
{ 
    return; 
} 
else if(content.contains("image")) 
{ 
    main.pctviewer.setImage(directory); 
} 

el nombre del archivo es:

"/ Usuarios/admin/Escritorio/temp/Q12/Formulare/Bildschirmfoto 11.09.2012 um 17.57.59.png"

y en modo de depuración en Eclipse si flotar por encima del archivo "ruta del archivo = Unis-ruta (id: 145)" es de color rojo

+0

a [enfoque alternativo se puede encontrar aquí] (http://stackoverflow.com/a/19712111/26510) –

Respuesta

9

He informado nuevamente del error a Oracle, con la esperanza de que respalden la solución jdk8 (no tengo muchas esperanzas, pero nunca se sabe).

Mientras tanto, puede usar mi propio backport del FileTypeDetector disponible en https://github.com/jeantil/jdk7-mimeutils los paquetes del proyecto maven en un jar que se puede agregar a su classpath para habilitar la detección del tipo de mime. También proporciono un archivo mime.types para poner en su carpeta de inicio para que la detección funcione correctamente. Extraje el archivo mime.types de alguna versión de apache, por lo que es bastante completo.

+0

¿reaccionaron? –

+0

no, y mi informe de error nunca lo hizo a través de :(mi blog tuvo un par de cambios: el enlace ahora es http://blog.byjean.eu/java/2013/08/22/making-jdk7-nio-filetypedetection-work -on-mac-osx.html – Jean

+1

2015 - OS El capitán y todavía con errores! – crazyGuy

2

encontré que el FileTypeDetector está libre de errores en OS X: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7133484

Aparentemente esto se solucionará en Java 8.

+0

Parece que sigue siendo un error abierto a partir de julio de 2016. https://github.com/pawandubey/griffin/issues/38 Corrígeme si me equivoco. – svk

Cuestiones relacionadas