2008-11-25 18 views
7

मेरे पास एक बाइनरी कॉलम वाला एक टेबल है जो कई अलग-अलग संभावित फ़ाइल प्रकारों (पीडीएफ, बीएमपी, जेपीईजी, डब्ल्यूएवी, एमपी 3, डीओसी, एमपीईजी, एवीआई इत्यादि) की फाइलों को स्टोर करता है, लेकिन कोई कॉलम जो नाम या नहीं स्टोर करता है मूल फ़ाइल का प्रकार। क्या इन पंक्तियों को संसाधित करने और बाइनरी कॉलम में संग्रहीत प्रत्येक फ़ाइल के प्रकार का निर्धारण करने का कोई आसान तरीका है? अधिमानतः यह एक उपयोगिता होगी जो केवल फाइल हेडर पढ़ती है, ताकि मुझे प्रत्येक प्रकार को पूरी तरह से निकालने की आवश्यकता न हो।फ़ाइल के विस्तार को जानने के बिना फ़ाइल के प्रकार को निर्धारित करने का कोई आसान तरीका है?

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

इसके अलावा, विंडोज पर बस सी #/नेट, कृपया। मैं लिनक्स का उपयोग नहीं कर रहा हूं और सिगविन का उपयोग नहीं कर सकता (विंडोज सीई पर अन्य कारणों से काम नहीं करता है)।

उत्तर

8

आप इन उपकरणों का उपयोग फ़ाइल स्वरूप को खोजने के लिए कर सकते हैं।

फ़ाइल विश्लेषक http://www.softpedia.com/get/Programming/Other-Programming-Files/File-Analyzer.shtml

क्या स्वरूप http://www.jozy.nl/whatfmt.html

पीई फ़ाइल स्वरूप विश्लेषक http://peid.has.it/

यह वेबसाइट आपके लिए उपयोगी हो सकता है। http://mark0.net/onlinetrid.aspx

नोट: मैंने यह सुनिश्चित करने के लिए डाउनलोड लिंक शामिल किए हैं कि आपको सही टूल नाम और जानकारी मिल रही है।

कृपया उन्हें डाउनलोड करने से पहले स्रोत को सत्यापित करें।

मैंने अतीत में एक उपकरण का उपयोग किया है, मुझे लगता है कि यह फ़ाइल विश्लेषक है, जो आपको निकटतम मैच बताएगा।

खुश टूलिंग।

+0

लिंक के लिए धन्यवाद। मैं उन्हें सब बाहर देखने जा रहा हूँ। – MusiGenesis

6

यह एक पूरा उत्तर नहीं है, लेकिन शुरू करने के लिए एक जगह "जादू संख्या" पुस्तकालय होगी। यह "जादू संख्या" निर्धारित करने के लिए फ़ाइल के पहले कुछ बाइट्स की जांच करता है, जो उनकी ज्ञात सूची के मुकाबले तुलना की जाती है। लिनक्स सिस्टम पर file कमांड कैसे काम करता है यह (कम से कम भाग) है।

+0

यदि आप मुझे इस तरह की अच्छी लाइब्रेरी में इंगित कर सकते हैं तो यह मेरे लिए पर्याप्त होगा। – MusiGenesis

+0

लिनक्स या यूनिक्स डिस्ट्रो पर/usr/share/file/magic,/etc/magic या कई अन्य समान स्थानों की तलाश करें। जैसा कि अन्य पोस्टर कहता है, आप इसे साइगविन – ConcernedOfTunbridgeWells

+1

-1 अस्थायी डाउनवोट (मैं इसे थोड़ा सा हटा दूंगा) के साथ भी प्राप्त कर सकता हूं। मुझे .NET के लिए कुछ चाहिए, और कभी-कभी इस 1000 लोगों के प्रश्नों पर "फाइल" और "लिनक्स" दिखाई देंगे और एक उत्तर ऊपर उठाएगा जो दर्शकों को किसी अन्य को ध्यान देने से रोकता है। व्यक्तिगत कुछ नहीं। :) – MusiGenesis

2

मुझे पता है कि सबसे आसान तरीका file कमांड का उपयोग करना है कि यह विंडोज में Cygwin के साथ भी उपलब्ध है।

1

बहुत सारी फाइल प्रकारों में अच्छी तरह से परिभाषित शीर्षलेख हैं जो फ़ाइल शुरू करते हैं। यह देखने के लिए कि फ़ाइल कैसे शुरू होती है, आप जांचने के लिए पहले कुछ बाइट्स देख सकते हैं।

1
यह करने के लिए एक * nix (या cygwin) प्रणाली 'फ़ाइल' कमांड है कि करने के लिए उपयोग के माध्यम से किया जाएगा

सबसे आसान तरीका:

$ file visitors.* 
visitors.html: HTML document text 
visitors.png: PNG image data, 5360 x 2819, 8-bit colormap, non-interlaced 

आप एक सी # अनुप्रयोग है कि के पहले एक्स बाइट्स पहुंचाया लिख ​​सकता है प्रत्येक बाइनरी कॉलम फ़ाइल कमांड (उपयोग - फ़ाइल नाम के रूप में)

4

किसी और ने एक समान प्रश्न पूछा और कोड को ठीक से करने के लिए इस्तेमाल किया। आपको यहां जो पोस्ट किया गया है उसे लेने में सक्षम होना चाहिए, और इसे थोड़ा संशोधित करें ताकि वह आपके डेटाबेस से खींच सके।

https://stackoverflow.com/questions/58510

कि के अलावा, ऐसा लगता है कि किसी को एक पुस्तकालय जादू संख्या के आधार पर यह करने के लिए लिखा है, तथापि, ऐसा लगता है कि साइट पंजीकरण की आवश्यकता है, और करने के लिए वैकल्पिक पहुँच के कुछ फार्म इस लाइबरी डाउनलोड करें। दस्तावेज पंजीकरण के बिना मुफ्त में उपलब्ध है, यह सहायक हो सकता है।

http://software.topcoder.com/catalog/c_component.jsp?comp=13249160&ver=2

+1

वह टॉपकोडर लिंक एक हास्यास्पद पंजीकरण प्रक्रिया के बाद भी डाउनलोड की अनुमति नहीं देता है - नजदीक मत जाओ! – Brendan

1

Win32 API से SHGetFileInfo विधि को कॉल करने के लिए आपको कुछ पी/इनवोक इंटरऑप कोड का उपयोग करने की आवश्यकता है। यह article भी मदद कर सकता है।

+0

मुझे लगता है कि सर्वर जो भी फ़ाइल प्रकार सोचता है (जो शायद ठीक रहेगा) वापस लौटाएगा, जबकि मुझे एक ऐसी विधि की आवश्यकता है जो एक ही फ़ाइल प्रकार निर्धारित करे, इससे कोई फर्क नहीं पड़ता कि यह किस सर्वर पर चलता है। – MusiGenesis

+0

हां, यह वापस लौटाएगा कि सर्वर फ़ाइल प्रकार क्या सोचता है। यह वही जानकारी है जिसे आप "एक्सप्लोरर" कॉलम के लिए विंडोज एक्सप्लोरर में देखेंगे। किसी भी सर्वर पर जानने का एकमात्र तरीका फ़ाइल एक्सटेंशन, पीई डेटा और फ़ाइल शीर्षलेखों को देखने के लिए अपनी खुद की पार्सिंग रूटीन लिखना है। –

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

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