আমি কীভাবে ওএস এক্সকে নতুন ফাইল এক্সটেনশনগুলি সনাক্ত করতে পারি?


19

Finder.app এ আপনি Enterবর্তমানে নির্বাচিত ফাইল বা ফোল্ডারের নাম সম্পাদনা করতে আঘাত করতে পারেন ।

ওএস এক্স স্বয়ংক্রিয়ভাবে কেবল ফাইলের নাম অংশটি নির্বাচন করবে, এক্সটেনশনটি নয়:

এটি খুব দরকারী, কারণ দুর্ঘটনাক্রমে ফাইলের এক্সটেনশানটি পরিবর্তনের বিষয়ে চিন্তা না করে আপনি কেবল নতুন নাম টাইপ করা শুরু করতে পারেন।

তবে এটি কেবল "পরিচিত" ফাইলের জন্য কাজ করে বলে মনে হচ্ছে। যদি আপনি এটি অজানা এক্সটেনশান দিয়ে চেষ্টা করেন তবে পুরো ফাইলের নাম (এক্সটেনশন সহ) নির্বাচন করা হবে:

আমি এমন একটি অ্যাপ্লিকেশনকে ম্যাপিং দেওয়ার চেষ্টা করেছি যা + → "সমস্ত পরিবর্তন করুন" এর .barমাধ্যমে সমস্ত ফাইল খুলতে পারে তবে আমি উপরে বর্ণিত আচরণটি পাই।I

"পরিচিত" ফাইলের ধরণের তালিকাটি কোথায় সংরক্ষণ করা হয়? ওএস এক্সকে নতুন ফাইলের ধরণ সনাক্ত করার কোনও উপায় আছে কি?

উত্তর:


7

এই সুপার ইউজার পোস্টটি আমার পক্ষে কাজ করেছে:

এই ফাইলগুলি খোলার জন্য আপনি যে অ্যাপ্লিকেশনটি ব্যবহার করতে চান তা ব্রাউজ করতে হবে এবং এর বান্ডিলটি সম্পাদনা করতে হবে। এই ফাইল এক্সটেনশনগুলি পরিচালনা করতে অ্যাপ্লিকেশনটিতে ডান ক্লিক করুন এবং প্যাকেজ সামগ্রীগুলি নির্বাচন করুন । নেভিগেট করুন Contentsএবং সম্পাদনা করুন Info.plist। আপনার সম্পত্তির তালিকা সম্পাদকের প্রয়োজন হতে পারে যা অ্যাপলের বিকাশকারী সরঞ্জামগুলির একটি অংশ। আপনি যদি ভাগ্যবান হন তবে এটি এক্সএমএল ফর্ম্যাটে। এই ফাইলটির সম্পাদনা করুন CFBundleDocumentTypesএবং আপনি যে এক্সটেনশানটি চান তা করার জন্য একটি এন্ট্রি যুক্ত করুন।

.barফাইল খুলতে আমি ডিফল্ট অ্যাপ্লিকেশন হিসাবে টেক্সটএডিট ব্যবহার করেছি । কেবলমাত্র আমি ভিন্নভাবে যা করলাম তা ছিল যে এক্সএমএলটি টেক্সটএডিট-এ গিয়েছিল Info.plist:

    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>bar</string>
        </array>
        <key>CFBundleTypeIconFile</key>
        <string>BarDocument</string>
        <key>CFBundleTypeName</key>
        <string>Bar Document</string>
        <key>CFBundleTypeRole</key>
        <string>Document</string>
    </dict>

… এবং তারপরে আমি লঞ্চ পরিষেবা ডেটাবেসে টেক্সটএডিট রিফ্রেশ করতে LSRefresh.app ব্যবহার করেছি । তারপরে এটি আপনার পরামর্শ মতো কাজ করেছে, যদিও এটি সিংহের টেক্সটাইটিট (এবং অন্য কোনও স্বাক্ষরিত অ্যাপ্লিকেশন) এর কোড স্বাক্ষরটি ভেঙে ফেলবে।


1
CFBundleTypeExtensionsওএস এক্স 10.5-এ অবহিত হয়ে গেছে এমন একটি উত্তরাধিকার কী । 2007 সালের পর থেকে পছন্দসই পদ্ধতিটি হ'ল নতুন ইউটিআই ঘোষণা করা, যেমনটি এখানে উল্লিখিত হয়েছে এবং আমার উত্তরে বর্ণিত হয়েছে ।
TachyonVortex

6
আমি দুঃখিত, আমাকে এটিকে হ্রাস করতে হবে কারণ এটি খারাপ পরামর্শ। কেবলমাত্র একটি অ্যাপ্লিকেশন বান্ডিল (উদ্ভট পার্শ্ব প্রতিক্রিয়া বা আরও খারাপের ঝুঁকি চালানো) দিয়ে ছড়িয়ে দেওয়া বুদ্ধিমানের কাজ নয়, তবে এটি অ্যাপের অনুলিপিটিকেও পুরোপুরি ধ্বংস করতে পারে। আপনি নোট করেছেন যে এই প্রক্রিয়াটি কোড স্বাক্ষরটিকে অকার্যকর করে তবে এটি উল্লেখ করতে ব্যর্থ হয় যে স্যান্ডবক্সিং (10.7+) সমর্থন করে এমন ম্যাকোএস সংস্করণগুলিতে, একটি অবৈধ স্বাক্ষরযুক্ত একটি স্যান্ডবক্সযুক্ত অ্যাপ্লিকেশন
বব

1
@ বাইনারিবব, আমি যা বুঝতে পারি না তা হল আপনি কেবল ফাইলটি ডান ক্লিক করে xxx.barনির্বাচন করেন না কেন open with?
পেসারিয়ার

@ Bob, অ্যাপ স্ট্যান্ডবক্সিং কি?
পেসারিয়ার

@Pacerier অ্যাপ স্যান্ডবক্সিং পুরোপুরি, সিস্টেম থেকে অ্যাপ্লিকেশান এবং একে অপরের isolates "এনটাইটেলমেন্ট" যে বিশেষভাবে বিবরণ অ্যাপ্লিকেশান কি খুব অল্প তালিকা সঙ্গে MacOS একটি নিরাপত্তা বৈশিষ্ট্য হয় না অনুমোদিত। এনটাইটেলমেন্টগুলির তালিকাটি কোড স্বাক্ষরটিতে এম্বেড করা হয় এবং অ্যাপটি চালিত হওয়ার সাথে সাথে অ্যাপ্লিকেশনগুলির ক্ষমতাগুলি যাতে দুর্ঘটনাক্রমে বা আক্রমণে ক্ষতিগ্রস্থ হতে পারে তা নিশ্চিত করে প্রতিবার প্রয়োগ করা হয়। প্রযুক্তিগত ব্যাখ্যার জন্য এই দস্তাবেজটি দেখুন ।
বব

28

ইউটিআই এবং লঞ্চ পরিষেবাদি

"পরিচিত" ফাইলের ধরণের তালিকাটি কোথায় সংরক্ষণ করা হয়?

"ফাইলের ধরণের" জন্য সরকারী শব্দটি ইউনিফর্ম টাইপ আইডেন্টিফায়ার (ইউটিআই) এবং ইউটিআইয়ের ডেটাবেস লঞ্চ পরিষেবাগুলি দ্বারা পরিচালিত হয় ।

টার্মিনালটি ব্যবহার করে , আপনি lsregisterসরঞ্জামটি চালু করে লঞ্চ পরিষেবা ডেটাবেসের সামগ্রীগুলি দেখতে পারেন , যা এখানে সংরক্ষণ করা হয়েছে:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister

যতবার আপনি দৌড়াতে চান সেই দীর্ঘ পথটি নির্দিষ্ট করার পরিবর্তে lsregisterআপনি অস্থায়ীভাবে এর ডিরেক্টরিটি আপনারটিতে যুক্ত করতে পারেন PATH:

PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"

এবং তারপরে আপনি lsregisterকেবল প্রবেশ করে চালাতে পারেন :

lsregister

লঞ্চ পরিষেবা ডাটাবেসের সামগ্রীগুলি দেখতে:

lsregister -dump

নতুন ইউটিআই ঘোষণা করছে

ওএস এক্সকে নতুন ফাইলের ধরণ সনাক্ত করার কোনও উপায় আছে কি?

"নতুন ইউনিফর্ম টাইপ আইডেন্টিফায়ারগুলি ঘোষণা করা" অ্যাপলের এই নিবন্ধটি কীভাবে এটি করা যায় সে সম্পর্কে দরকারী তথ্য সরবরাহ করে। সম্পূর্ণ প্রক্রিয়াটি এখানে:

1. একটি ডামি অ্যাপ্লিকেশন তৈরি করুন

লঞ্চ পরিষেবাদিতে নিবন্ধনের জন্য একটি ডামি অ্যাপ্লিকেশন তৈরি করুন:

  • অ্যাপলস্ক্রিপ্ট সম্পাদক খুলুন (ওএস এক্স এর ইউটিলিটি ফোল্ডারে অবস্থিত )।
  • একটি নতুন খালি স্ক্রিপ্ট কোথাও সংরক্ষণ (যেমন: আপনার ডেস্কটপ দিকে), তার সেটিং ফাইল ফর্ম্যাট করার আবেদন

২.এর তথ্য.পলিট ফাইলটি খুলুন

  • আপনার নতুন ডামি অ্যাপ্লিকেশনটি ফাইন্ডারে সন্ধান করুন।
  • এটিতে ডান ক্লিক করুন এবং পপআপ মেনু থেকে প্যাকেজ সামগ্রীগুলি নির্বাচন করুন select
  • এর বিষয়বস্তু ফোল্ডারটি খুলুন ।
  • খুলুন Info.plist (: যেমন একটি টেক্সট এডিটর ফাইল TextEdit )।

৩. আপনার নতুন ইউটিআই যুক্ত করুন

দুটি চাবি পছন্দ আছে:

  • UTExportedTypeDeclarations - আপনার নিজস্ব কাস্টম ফাইলের নাম এক্সটেনশনের জন্য।
  • UTImportedTypeDeclarations - ফাইল নাম এক্সটেনশনের জন্য যা ইতিমধ্যে বিদ্যমান তবে ওএস এক্স দ্বারা স্বীকৃত নয়।

আপনার প্রয়োজনের জন্য সবচেয়ে উপযুক্ত এমন কীটি চয়ন করুন।

তারপর Info.plist ফাইল, চূড়ান্ত দুই লাইন (আগে </dict></plist>), এই কোড যোগ করুন:

<key>KEY</key>
<array>
    <dict>
        <key>UTTypeIdentifier</key>
        <string>IDENTIFIER</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>EXTENSION</string>
            </array>
        </dict>
    </dict>
</array>

নিম্নলিখিত পরিবর্তনগুলি করা:

  • KEYআপনার নির্বাচিত কী (হয় UTExportedTypeDeclarationsঅথবা UTImportedTypeDeclarations) দিয়ে প্রতিস্থাপন করুন ।
  • IDENTIFIERউপযুক্ত বিপরীত-ডিএনএস সনাক্তকারী দিয়ে প্রতিস্থাপন করুন :
    • রফতানি করা - এমন কিছু com.mycompany.mytype
    • আমদানিকৃত - আইডি সফ্টওয়্যার এর ডুম WAD ফর্ম্যাটের জন্য একটি উপযুক্ত সনাক্তকারী হবেcom.idsoftware.wad
  • প্রতিস্থাপন EXTENSION: ফাইলের নাম এক্সটেনশন (নেতৃস্থানীয় ডট ছাড়া), যেমন সঙ্গে wad

আপনার নতুন ইউটিআই গ্রহণের জন্য পরিষেবা চালু করার জন্য এটি ন্যূনতম কোড। আপনি নিম্নলিখিত alচ্ছিক বৈশিষ্ট্যগুলি যুক্ত করতে পারেন:

  • UTTypeConformsTo - নীচের পরিশিষ্ট দেখুন।
  • UTTypeDescription - ব্যবহারকারীর দ্বারা দৃশ্যমান একটি বিবরণ, যা ফাইন্ডারে প্রদর্শিত হবে।
  • UTTypeIconFile- আপনি যদি নিজের ডামি অ্যাপ্লিকেশনটির বিষয়বস্তু / সংস্থানসমূহ ফোল্ডারে কোনও অ্যাপল আইকন চিত্র ফাইল যুক্ত করেন এবং এই সম্পত্তিতে এটির ফাইল নাম যুক্ত করেন, তবে আপনার নতুন ফাইল নাম এক্সটেনশানযুক্ত ফাইলগুলি এই আইকনটি ব্যবহার করবে।
  • UTTypeReferenceURL - এই ধরণের বর্ণনা দেয় এমন একটি রেফারেন্স ডকুমেন্টের URL।

সমস্ত alচ্ছিক বৈশিষ্ট্য দেখানোর একটি সম্পূর্ণ উদাহরণ এখানে:

<key>UTImportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeIdentifier</key>
        <string>com.idsoftware.wad</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>wad</string>
            </array>
        </dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Doom WAD file</string>
        <key>UTTypeIconFile</key>
        <string>DoomWAD.icns</string>
        <key>UTTypeReferenceURL</key>
        <string>http://en.wikipedia.org/wiki/Doom_WAD</string>
    </dict>
</array>

৪. লঞ্চ পরিষেবাগুলির সাথে আপনার নতুন ইউটিআই নিবন্ধন করুন

টার্মিনালে এই কমান্ডটি চালান:

lsregister <PATH_TO_APP>

<PATH_TO_APP>আপনার ডামি অ্যাপ্লিকেশনটির পাথের পরিবর্তে উদাহরণস্বরূপ:

lsregister ~/Desktop/MyDummyApp.app

আপনি যদি এখন আপনার নতুন ফাইল নাম এক্সটেনশন দিয়ে একটি ফাইল তৈরি করেন, এবং তারপরে এটি ফাইন্ডারে নির্বাচন করে এবং হিট করেন Enter, ফাইন্ডারের স্বয়ংক্রিয়ভাবে কেবল ফাইল নাম অংশটি নির্বাচন করা উচিত, এক্সটেনশনটি নয়।

আপনি যদি লঞ্চ পরিষেবা ডেটাবেসের সামগ্রীগুলি দেখতে পান:

lsregister -dump

আপনার তালিকাভুক্ত আপনার নতুন ইউটিআই খুঁজে পাওয়া উচিত:

type    id:            50364
        bindableKey:   12608
        generation:    1
        uti:           com.idsoftware.wad
        description:   Doom WAD file
        flags:         imported  active  apple-internal  untrusted
        icon:          DoomWAD.icns
        conforms to:   public.data
        tags:          .wad

আপনি যদি পরে আপনার নতুন ইউটিআই নিবন্ধন করতে চান তবে এই -uবিকল্পটি এখানে পাস করুন lsregister:

lsregister -u ~/Desktop/MyDummyApp.app

পরিশিষ্ট: ইউটিআই হায়ারার্কি এবং কনফরমেন্স

ওএস এক্স ইউটিআইয়ের একটি শ্রেণিবিন্যাস ঘোষণা করেছে যা এখানে তালিকাভুক্ত রয়েছে: সিস্টেম-ঘোষিত ইউনিফর্ম টাইপ শনাক্তকারী

শ্রেণিবিন্যাসের কয়েকটি ইউটিআই রয়েছে:

  • public.content
    • public.text
      • public.rtf
      • public.html
      • public.xml
      • public.plain-text
      • public.source-code
        • public.c-source
        • public.c-header
        • com.sun.java-source
    • public.image
      • public.jpeg
      • public.tiff
      • public.png
    • public.audiovisual-content
      • public.movie
      • public.audio

প্রতিটি ইউটিআই তার প্যারেন্ট ইউটিআইতে "সম্মতি জানায়:"

উদাহরণস্বরূপ, ইউটিআই public.html, যা এইচটিএমএল পাঠ্যকে সংজ্ঞায়িত করে, বেস পাঠ্য শনাক্তকারীর সাথে সামঞ্জস্য করে public.text। এই ক্ষেত্রে, কনফরমেশনগুলি এমন অ্যাপ্লিকেশনগুলিকে দেয় যা সাধারণ পাঠ্য ফাইলগুলি খুলতে পারে যা এইচটিএমএল ফাইলগুলিও খোলার মতো সনাক্ত করতে পারে। ( রেফ )

একটি নতুন ইউটিআই তৈরি UTTypeConformsToকরার সময়, বিদ্যমান ইউটিআইর মধ্যে একটিতে সম্পত্তি সেট করা ভাল ধারণা ।

উদাহরণস্বরূপ, যদি আপনার নতুন ইউটিআই সোর্স কোড হল এক ধরনের হয়, তাহলে আপনাকে তা সেট করা উচিত UTTypeConformsToকাছে সম্পত্তি public.source-code, যাতে এটি যা খুলতে পারে কোনো অ্যাপ্লিকেশান দ্বারা খোলা যাবে public.source-codeবা public.plain-textবা public.textফাইল।


ফাইল এক্সটেনশনের সাথে জড়িত সম্পাদককে নির্দিষ্ট করার কোনও উপায় আছে কি?
gr4nt3d

0

এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অচেনা এক্সটেনশান সহ ফাইলটি নির্বাচন করুন (বলুন .txt)।

  2. ডান ক্লিক করুন এবং নির্বাচন করুন Get Infoবা Commandiতথ্য উইন্ডো প্রদর্শন করতে কীবোর্ড শর্টকাট ব্যবহার করুন ।

  3. বিস্তারিত দেখুন খোলার জন্য ওপেন উইথ: ছাড়াও প্রকাশের সূচকটিতে ক্লিক করুন । ড্রপ ডাউন থেকে পছন্দসই অ্যাপ নির্বাচন করুন। এটি দস্তাবেজটিকে নির্বাচিত অ্যাপ্লিকেশনটির সাথে সংযুক্ত করবে (যেমন টেক্সটএডিট)।

  4. দেখার জন্য ক্লিক করুন সকল পরিবর্তন করুন ... বোতাম। এটি প্রথমে আপনার অভিপ্রায়টি নিশ্চিত করার জন্য একটি ডায়লগ বাক্স প্রদর্শন করবে এবং .txtটেক্সটএডিট দিয়ে খোলার জন্য সমস্ত দস্তাবেজকে লিঙ্ক করবে এবং যখন আপনি দস্তাবেজের নামে ফিরে যাবেন তখন এক্সটেনশনটি নির্বাচিত ছাড়বেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.