Holen Sie sich den MimeType aus dem Dateiinhalt. MimeType kann aus der Erweiterung der Datei abgeleitet werden. Da es jedoch für Zwecke verwendet wird, die beim Umschreiben problematisch sind, wird es aus dem Dateiinhalt abgerufen.
Verwenden Sie Apache Tika. Das Ergebnis hängt jedoch vom Dateinamen ab, es sei denn, es handelt sich um "TikaInputStream".
Installieren und verwenden Sie Apache Tika Core von Maven. Ich habe "1.21" zur Verifizierung verwendet.
Es ist ein grobes Beispiel, aber es ist ein Beispiel, um MimeType für alle Dateien unter "src / main / resources" abzurufen. Als Randnotiz wird der Typ "org.apache.tika.metadata.Metadata" benannt, weil er den Typ "Metadata" von Kotlin trägt.
Lesen Sie die Datei in Ressourcen und geben Sie MimeType aus
import java.io.File
import org.apache.tika.Tika
import org.apache.tika.io.TikaInputStream
import org.apache.tika.metadata.Metadata as TikaMetadata
fun main() {
val resourcesDir = File(System.getProperty("user.dir") + "/src/main/resources")
val metaData = TikaMetadata()
val tika = Tika()
resourcesDir.listFiles().map {
val tikaStream = TikaInputStream.get(it.toURI(), metaData)
//Die Erweiterung wird zum Sortieren mit lowerCase vereinheitlicht
it.name.split(".").last().toLowerCase() + " -> " + tika.detect(tikaStream, metaData)
}.sorted().forEach {
//Ausgabe nach dem Sortieren
println(it)
}
}
Dies ist das Ergebnis des Einwerfens der Dateien und Samples, die sich in diesem Bereich befanden, und des Umblätterns. Es kann fast einzigartig genommen werden. Ich habe auch die Erweiterung umgeschrieben und ausprobiert, und es hat ziemlich gut funktioniert.
7z -> application/x-7z-compressed
avi -> video/x-msvideo
docx -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
exe -> application/x-dosexec
flv -> video/x-flv
html -> text/html
jpg -> image/jpeg
jpg -> image/jpeg
m3u -> text/plain
mkv -> video/x-matroska
mkv -> video/x-matroska
mkv -> video/x-matroska
mkv -> video/x-matroska
mov -> video/quicktime
mov -> video/quicktime
mov -> video/quicktime
mov -> video/quicktime
mp3 -> audio/mpeg
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/x-m4v
mpg -> video/mpeg
mpg -> video/mpeg
mpg -> video/mpeg
msi -> application/x-ms-installer
pdf -> application/pdf
png -> image/png
pptx -> application/vnd.openxmlformats-officedocument.presentationml.presentation
svg -> image/svg+xml
ts -> application/octet-stream
vcmf -> application/octet-stream
vob -> video/mpeg
webm -> video/webm
webm -> video/webm
webm -> video/webm
webm -> video/webm
zip -> application/zip
Ich habe diesmal Tika verwendet, aber die Methode mit "URLConnection" oder "mime-util" ist wichtig in dem Sinne, dass sie bei der Suche herauskommt. Diese hatten jedoch Schwierigkeiten mit der Erkennungsgenauigkeit und der Fortsetzung der Wartung, so dass ich diesmal Tika als Test verwendete.
Recommended Posts