Java-Tipp: MIME-Type einer Datei (einfacher Weg)
public static String getMIMEType( File file )
{
if ( !file.exists() )
throw new IllegalArgumentException( "File does not exit!" );
if ( file.isDirectory() )
return "directory"
try
{
return file.toURI().toURL().openConnection().getContentType();
}
catch ( IOException e )
{
throw new IllegalArgumentException( e.getMessage() );
}
}

4 Comments:
Dieser Weg ist wirklich sehr einfach.
Allerdings weiß ich nicht, wie ich die Connection nach dem Auslesen des MIME-Types wieder schließe.
openConnection() führt anscheinend dazu, dass das entsprechende File blockiert wird und z. B. nicht mehr gelöscht werden kann, was in meinem Fall erforderlich wäre.
Die Klassen URL und URLConnection bieten leider keine Methoden wie z. B. close() oder closeConnection() an :-(
By
Stefan, at September 07, 2007 11:47 AM
Oh. Darüber habe ich noch gar nicht nachgedacht. Wie wäre es, sich über die URLConnection auf der einen Seite über getContentType() den CT geben zu lassen, aber dann noch ein getInputStream(), der dann sofort wieder geschlossen wird?
By
Christian Ullenboom, at September 07, 2007 2:46 PM
Stimmt, so funktioniert es :-)
Allerdings scheint die Ermittlung des MIME-Types über eine URLConnection nicht in allen Fällen korrekt zu funktionieren.
So werden z. B. MS Word oder PowerPoint-Dokumente als "content/unknown" erkannt, obwohl es dafür eine MIME-Definition gibt. Das mag aber an den Dateien selbst liegen.
By
Stefan, at September 07, 2007 3:37 PM
Daher auch "einfacher Weg". Es gibt auch andere Lösungen, etwa http://www.rgagnon.com/javadetails/java-0487.html. Man braucht aber was, was sich wirklich die ersten Bytes im Datenstrom anschaut.
By
Christian Ullenboom, at September 07, 2007 4:04 PM
Kommentar veröffentlichen
<< Home