OSX: सामग्री प्रकार को एक्सटेंशन असाइन करें


14

यहाँ मेरे पास एक फ़ोल्डर है जिसमें * .mkv फ़ाइलों (वीडियो, स्पष्ट रूप से) और * .srt फ़ाइलों (उपशीर्षक, स्पष्ट रूप से) का एक गुच्छा है। मैं उन्हें एक फ़ोल्डर में रखना चाहता हूं, लेकिन मैं नहीं चाहता कि उन्हें एक साथ मिलाया जाए। यह दो अलग-अलग समूहों में उन्हें नेत्रहीन रूप से व्यवस्थित करने के लिए एक अच्छा विचार है।

हालांकि, न तो एक्सटेंशन को सिस्टम द्वारा मान्यता प्राप्त है, और उन्हें अभी भी एक समूह 'दस्तावेज़' के तहत रखा गया है, जो स्पष्ट रूप से वह नहीं है जो मैं चाहता हूं।

प्रश्न: सिस्टम को कैसे बताया जाए कि सभी * .mkv फ़ाइल को 'मीडिया' (या 'वीडियो' या वीडियो फ़ाइलों के लिए फ़ाइल प्रकार समूह का नाम) माना जाए?

धन्यवाद।यहाँ छवि विवरण दर्ज करें

संपादित करें:

@ डैनियल, संबद्ध प्रोग्राम MPlayerX है और उस कमांड का आउटपुट निम्नानुसार है:

imac:Game of Thrones arnold$ mdls "Game of Thrones 1×2.mkv"
kMDItemContentCreationDate     = 2011-12-15 10:31:20 +0000
kMDItemContentModificationDate = 2011-12-27 09:09:55 +0000
kMDItemContentType             = "dyn.ah62d4rv4ge804450"
kMDItemContentTypeTree         = (
    "public.data",
    "public.item"
)
kMDItemDateAdded               = 2011-12-27 09:22:55 +0000
kMDItemDisplayName             = "Game Of Thrones 1×2.mkv"
kMDItemFSContentChangeDate     = 2011-12-27 09:09:55 +0000
kMDItemFSCreationDate          = 2011-12-15 10:31:20 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "Game of Thrones 1×2.mkv"
kMDItemFSNodeCount             = 220877659
kMDItemFSOwnerGroupID          = 99
kMDItemFSOwnerUserID           = 99
kMDItemFSSize                  = 220877659
kMDItemFSTypeCode              = ""
kMDItemKind                    = "Video Media"
kMDItemLogicalSize             = 220877659
kMDItemPhysicalSize            = 220880896
imac:Game of Thrones arnold$ 

अजीब तरह से, 'आइटम काइंड' 'वीडियो मीडिया' के रूप में दिखाई देता है। और एक उपशीर्षक फ़ाइल के लिए 'उपशीर्षक' है। फिर भी, यह खोजक को किसी कारण से उन फ़ाइलों को सही ढंग से व्यवस्थित करने में मदद नहीं करता है ...


इन फ़ाइलों के साथ क्या कार्यक्रम जुड़ा हुआ है? mdlsइन फ़ाइलों में से एक के लिए टर्मिनल में आउटपुट क्या है , उदा mdls "Game of Thrones episode 2.mkv"?
डैनियल बेक

क्या यह ग्रुपिंग फीचर शेर में नया है? आइकन क्रमशः "सबटाइटल्स" और "वीडियो" भी कहते हैं, इसलिए यह वास्तव में समस्या नहीं होनी चाहिए।
स्लैक

शेर में @slhck नया है। प्रतीक 100% छवियां हैं और संबंधित एप्लिकेशन द्वारा प्रदान किए गए हैं, इसलिए इसका कोई मतलब नहीं है। अर्नोल्ड, mdlsआउटपुट के लिए धन्यवाद । क्या आप MPlayer OSX या MPlayer OSX विस्तारित का उपयोग कर रहे हैं ?
डैनियल बेक


@DanielBeck आह, मुझे लगा कि यह प्रतिनिधित्व करता है kMDContentType। हालांकि उपरोक्त प्रकार की सामग्री किस प्रकार की है?
slhck

जवाबों:


12

आपको एक एप्लिकेशन का उपयोग करना होगा जो .mkvफ़ाइल नाम एक्सटेंशन के लिए सही फ़ाइल प्रकार एसोसिएशन की घोषणा करता है ।

उदाहरण के लिए, निर्यात प्रकार UTIs अनुभाग /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plistमें निम्नलिखित को घोषित करने के लिए सिस्टम-परिभाषित फ़ाइल प्रकार :

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

यह सिस्टम को यूटीआई public.jpeg को "यूटीआई समूह" के साथ जोड़ने की अनुमति देता है public.image, जो कि (बहुत संभावना है) इमेज ग्रुप के लिए फाइंडर का उपयोग करता है ; फ़ाइल एक्सटेंशन के public.filename-extensions समतुल्य प्रकार के नक्शे।

यह ओएस एक्स को निर्धारित करने की अनुमति देता है, उस .jpgफ़ाइल में यूटीआई है public.jpeg, और वह public.image(और इतने पर, के साथ public.itemऔर public.data) का एक उप-यूटीआई है । खोजक तब सभी फ़ाइलों को लेता है जो (भी) हैं public.imageऔर उन्हें एक ही चित्र समूह में डालती हैं ।

वही लागू होता है public.mpeg-4और public.movieवहां फ़ाइल नाम मैपिंग होता है।


दुर्भाग्य से, MPlayerX के लेखक ने यूटीआई के मानचित्रण को परेशान नहीं किया।

वह उन सभी एक्सटेंशनों के लिए उचित फ़ाइल प्रकार बनाने से भी परेशान नहीं होता, जो कार्यक्रम का समर्थन करता है। इसीलिए फाइंडर की सूची के दृश्य में , सभी .mkvफ़ाइलों को उदाहरण के लिए Matroska Video नहीं कहा जाता है , और उनके आइकन पर एक मेल खाने वाला MKV लेबल है, लेकिन केवल सामान्य वीडियो लेबल वाला वीडियो मीडिया है । सभी समर्थित फ़ाइल प्रकार इस "फ़ाइल प्रारूप" के लिए फ़ाइल एक्सटेंशन द्वारा सूचीबद्ध हैं, इसलिए MPlayerX उन्हें खोल सकते हैं:

यहाँ छवि विवरण दर्ज करें

इसका मतलब है, उदाहरण के लिए, यदि आप खेल रहे हैं पसंद करते हैं यही कारण है कि .m4aiTunes के MPlayerX में फ़ाइलों, आप वर्णनात्मक खो एप्पल एमपीईजी -4 ऑडियो खोजक के दशक में तरह स्तंभ और प्राप्त ऑडियो मीडिया के बजाय।


आप /Applications/MPlayerX.app/Contents/Info.plistफ़ाइल को संपादित करके और ठीक से घोषित फ़ाइल एक्सटेंशन एक्सटेंशन मैपिंग जोड़कर, उदाहरण के लिए, एक mplayerx.videoयूटीआई की घोषणा करके समूह को ठीक कर सकते हैं public.movie

आप एक ही फ़ाइल को संपादित करके और बेहतर विवरण के साथ फ़ाइल प्रकारों को ठीक से घोषित करके और प्रत्येक के लिए एक आइकन फ़ाइल बनाकर किंडल कॉलम को ठीक कर सकते हैं ।

बस मूल प्रकार Info.plist फ़ाइल को टेम्पलेट के रूप में उपयोग करें, उदाहरण public.jpegके लिए अपने स्वयं के कस्टम पहचानकर्ता के साथ प्रतिस्थापित करें (जैसे mplayerx.videoयदि आप उचित प्रकार के कॉलम और आइकन नहीं चाहते हैं , या mplayerx.mkvयदि आप उन्हें चाहते हैं)। आपको इन फ़ाइलों को संपादित करने के लिए Xcode की आवश्यकता है, या उपयोग करके किसी भी पाठ संपादक में XML संपादन योग्य में परिवर्तित करें plutil -convert xml1 <filename>

आपके परिवर्तन, जो गलत होना आसान है, उन्हें हर एप्लिकेशन अपडेट के साथ ओवरराइड किया जाएगा।

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

एक संन्यासी समाधान एक नया "डमी" एप्लिकेशन बनाने के लिए होगा जो केवल फ़ाइल प्रकार यूटीआई को निर्यात प्रकार यूटीआई घोषित करता है । इसका उपयोग OS X के फ़ाइल प्रकार डेटाबेस द्वारा किया जाएगा और आप सामग्री प्रकार के संघों को खोए बिना OS X और MPlayerX दोनों को अपडेट कर सकते हैं। भले ही आप उदाहरण के .m4aलिए MPlayerX में बदल जाते हैं, केवल Kind कॉलम को बदल दिया जाता है, यह अभी भी मूवी श्रेणी में है, संबंधित एप्लिकेशन से स्वतंत्र एक और एप्लिकेशन में घोषणाओं के कारण।

इसलिए, एक नया एप्लिकेशन बनाएं जैसे कि ऑटोमेटर का उपयोग करना जो वास्तव में लॉन्च होने पर कुछ भी नहीं करता है, और इसकी Contents/Info.plistफ़ाइल में निम्न जोड़ें :

यहाँ छवि विवरण दर्ज करें

/Applicationsया तो में सहेजें , और खोजक को पुनरारंभ करें।

यहाँ छवि विवरण दर्ज करें

फ़ाइल mdlsका आंशिक आउटपुट .mkv, "सहायक ऐप" द्वारा प्रदान की गई सामग्री प्रकार, संबंधित खिलाड़ी द्वारा प्रदान किया गया आइटम प्रकार (MPlayerX):

kMDItemContentType             = "superuser.371939.mkv"
kMDItemContentTypeTree         = (
    "superuser.371939.mkv",
    "public.movie",
    "public.audiovisual-content",
    "public.data",
    "public.item",
    "public.content"
)
...
kMDItemKind                    = "Video Media"

चूंकि यह डेवलपर द्वारा केवल मैला मंच एकीकरण है, आपको संभवतः एक बग दर्ज करना चाहिए।


बहुत ही रोचक। आज कुछ नया सीखा। तो यही कारण kMDItemContentTypeTreeहै कि मेटाडेटा के लिए उपयोगी कुछ भी नहीं जोड़ता है?
slhck

@slhck बिल्कुल। सिस्टम को फ़ाइल को सामग्री प्रकार UTI के साथ संबद्ध करने का एक तरीका चाहिए। यह गायब है, क्योंकि यह डिफ़ॉल्ट रूप से सिस्टम में नहीं है (जैसे .mp4कि है), और सिस्टम में फ़ाइल प्रकार को जोड़ने वाला एप्लिकेशन या तो यूटीआई घोषित नहीं करता है (इसलिए यह सिर्फ है dyn.xyz) या संबंध (इसलिए यह सिर्फ है public.data) या तो। उन्हें यूटीआई की घोषणा करने और इसे public.movie(उदाहरण के बजाय public.data) के साथ संबद्ध करने की आवश्यकता होगी ।
डैनियल बेक

1
वाह! इस तरह की जानकारीपूर्ण और समस्या पर गहन शोध के लिए धन्यवाद। यह बहुत ही शैक्षिक और सहायक है। मुझे अभी भी आपके समाधान की कोशिश करनी है, लेकिन मुझे यकीन है कि यह काम करेगा। बहुत अच्छा!
अर्नोल्ड

सभी हैक्स की सबसे आसान बस हांफना का नाम बदलने के .mkvलिए है .avi !!! मैं एक स्पॉटलाइट कमेंट (गेट इन्फो) में यह कहकर थोड़ा कम भीषण बनाता हूं कि यह वास्तव में एक mkv है। .. यह निश्चित रूप से आपके मीडिया प्लेयर गलत एक्सटेंशन के साथ ठीक है - VLC नीचे है;)
जोएल मेलन

... मैं भूल गया, आप इसका नाम बदलकर .mkv.aviकम से कम बुरे काम के लिए भी कर सकते हैं लेकिन थोड़े कम सुंदर नाम के साथ।
जोएल मेलन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.