2010-04-28 9 views
15

में फ़ाइल कमांड के बराबर एक जावा लाइब्रेरी है क्या कोई जावा लाइब्रेरी है जो यूनिक्स के कमांड file के समान है?क्या यूनिक्स

अर्थात्:

$ file somepicture.png 
somepicture.png PNG image, 805 x 292, 8-bit/color RGB, non-interlaced 

फ़ाइल आदेश इस तरह के एक अच्छा उपकरण है। मुझे ऐसा कुछ चाहिए जो मुझे बता सके कि फाइल वास्तव में क्या है जो मैं चाहता हूं। (यानी एक तस्वीर, दस्तावेज इत्यादि)

मुझे पता है कि मैं file कमांड चला सकता हूं, लेकिन मैं एक वास्तविक पुस्तकालय की तलाश में हूं, वास्तविक यूनिक्स कमांड नहीं चला रहा हूं।

+0

मैं अपाचे टिका का उपयोग कर समाप्त हुआ। JMimeMagic खराब दस्तावेज किया गया था। (नहीं कि टीका बेहतर था, लेकिन एपीआई आसान आईएमओ था) –

उत्तर

13

एक त्वरित गूगल खोज (वैसे गैर स्पष्ट के लिए) "java magic file detection" एक काफी अच्छे लग लेख, "Get the Mime Type from a File" जिससे पता चलता है कि आप निम्न में से एक का उपयोग को लाता है:

+0

धन्यवाद। मुझे लगता है कि इन दोनों में से एक को चाल करना चाहिए। इसकी वास्तव में दस्तावेज और छवियों की मुझे आवश्यकता है। जेडीके-केवल समाधान देने के लिए –

3

आप jmimemagic (tutorial) देख सकते हैं। हम इसे अपलोड की गई छवियों को सत्यापित करने के लिए थोड़ी देर के लिए उपयोग कर रहे हैं। अभी तक कोई समस्या नहीं है।

2

मुझे यकीन नहीं है कि यह वही है जो आप खोज रहे हैं, लेकिन निम्न लिंक शायद आपकी मदद कर सकता है:

http://www.rgagnon.com/javadetails/java-0487.html

+0

+1। मुझे यकीन नहीं है कि यह तरीका कितना अच्छा है, लेकिन यह वही हो सकता है जो उपयोगकर्ता ढूंढ रहा है। –

+2

@bkail 'javax.activation.MimetypesFileTypeMap' केवल फ़ाइल एक्सटेंशन की जांच करता है जो निश्चित रूप से यह निर्धारित करने का एक विश्वसनीय तरीका नहीं है कि" अगर फ़ाइल वास्तव में मैं इसे चाहता हूं " – sfussenegger

+0

हां जेडीके समाधान 'फ़ाइल' की तरह काम नहीं कर रहा है यूनिक्स में 'फाइल' वास्तव में फाइल को देखती है और बताती है कि यह क्या है। खिड़कियों जैसे एक्सटेंशन की परवाह नहीं है –

1

mime-utils पर एक नज़र डालें। यह सामग्री और/या एक्सटेंशन के साथ काम करता है।

4

जावा 1.7 जब से तुम Files.probeContentType() उपयोग कर सकते हैं एक फ़ाइल की जांच करने के लिए है। बॉक्स के बाहर यह सामग्री प्रकार का अनुमान लगाने के लिए मंच पर तंत्र का उपयोग करता है, या यदि आप चाहें तो अपने स्वयं के डिटेक्टर को प्लगइन कर सकते हैं।