2011-04-04 27 views
8

Apache Tika kullanıyorum ve içerik türünü yansıtan uzantıya sahip olması için yeniden adlandırılması gereken belirli bir içerik türüne sahip (uzantısız) dosyam var.İçerik türünden dosya uzantısı nasıl edinilir?

Programlama yerine kullanabileceğim bir şey varsa, içerik tür adlarına göre sıfırdan herhangi bir fikrin var mı?

cevap

1

dosya tika-mimetypes.xml bakmak istiyorum -> TİKA'nın kaynak kodunu kontrol edin ve: sen için

org.apache.tika.mime.MimeTypesReader 

    } else if (nodeElement.getTagName().equals(GLOB_TAG)) { 
     boolean useRegex = Boolean.valueOf(nodeElement.getAttribute(ISREGEX_ATTR)); 
     types.addPattern(type, nodeElement.getAttribute(PATTERN_ATTR), useRegex); 

Ardından zekâ

org.apache.tika.mime.MimeTypes 

     private Patterns patterns = new Patterns(registry); 
18

iki anahtar sınıfları çalışabilir MediaTypeRegistry ve MimeTypes. Bunları kullanarak, mim türü büyü tabanlı algılama yapabilir ve mime türleri ve ilişkileri hakkında bilgi alabilirsiniz.

TikaConfig config = TikaConfig.getDefaultConfig(); 
// 
InputStream stream = new FileInputStream(file); 
MediaType mediaType = config.getMimeRepository().detect(stream, new Metadata()); 
MimeType mimeType = config.getMimeRepository().forName(mediaType.toString()); 
String extension = mimeType.getExtension(); 

Ayrıca çok konteynerin farkında algılama idare edeceğiz TİKA'nın svn DefaultDetector bakmak isteyebilirsiniz.

+0

Bu, TikaConfig.getDefaultConfig() 'olmalıdır. – mbmast

+0

@mbmast Whoops, sabit, teşekkürler! – Gagravarr

İlgili konular