2011-04-04 11 views
8

मैं अपाचे टिका का उपयोग कर रहा हूं, और मेरे पास विशेष सामग्री प्रकार की फ़ाइलें (एक्सटेंशन के बिना) हैं जिन्हें सामग्री प्रकार को प्रतिबिंबित करने वाले एक्सटेंशन के लिए नामित किया जाना चाहिए।सामग्री प्रकार से फ़ाइल एक्सटेंशन कैसे प्राप्त करें?

कोई विचार अगर कुछ ऐसा है जो मैं प्रोग्रामिंग के बजाय उपयोग कर सकता हूं जो सामग्री प्रकार के नामों के आधार पर स्क्रैच से है?

उत्तर

1

आप फ़ाइल टीका-mimetypes.xml को देखने के लिए चाहते हैं -> टीका के स्रोत कोड की जाँच और:

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); 

फिर आप बुद्धि काम कर सकते हैं

org.apache.tika.mime.MimeTypes 

     private Patterns patterns = new Patterns(registry); 
18

दो प्रमुख वर्गों आप कर रहे हैं के लिए MediaTypeRegistry और MimeTypes। इनका उपयोग करके, आप माइम प्रकार जादू आधारित पहचान कर सकते हैं, और माइम प्रकारों और उनके रिश्तों पर जानकारी प्राप्त कर सकते हैं।

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(); 

आप भी इसे कंटेनर बारे में पता का पता लगाने भी संभाल लेंगे, टीका के SVN में DefaultDetector को देखने के लिए चाहते हो सकता है।

+0

यह 'TikaConfig.getDefaultConfig()' होना चाहिए। – mbmast

+0

@mbmast Whoops, तय, धन्यवाद! – Gagravarr

संबंधित मुद्दे