অ্যাপলস্ক্রিপ্ট: ইতিমধ্যে খোলা ফোল্ডারের জন্য কীভাবে একটি নতুন ফাইন্ডার উইন্ডো তৈরি করবেন?


2

অ্যাপলস্ক্রিপ্টের বাইরে সমস্যা :

সমস্যাটি প্রত্যক্ষ করতে 1 , নিম্নলিখিতটি করুন:

  • ডেস্কটপে উপস্থিত ফোল্ডারে ডাবল ক্লিক করুন। এটি করার ফলে Finder.app এ এই ফোল্ডারটি খুলবে।

  • ডেস্কটপে ফিরে আসুন এবং আবার একই ফোল্ডারে ডাবল ক্লিক করুন।

  • দ্বিতীয় উইন্ডোটি তৈরি হওয়ার পরিবর্তে , পূর্বের তৈরি উইন্ডোটি সম্মুখভাগে আনা হবে।


একটি ওয়ার্কঅ্যারাউন্ড, বাহিরে AppleScript সংখ্যা:

সুতরাং, আপনি যদি একই ফোল্ডারের দুটি ফাইন্ডার উইন্ডো চান তবে আপনি কী করবেন ?

একটি ক্লুজ বিদ্যমান:

অন্য যে কোনও ফোল্ডারটি খোলার মাধ্যমে একটি নতুন ফাইন্ডার উইন্ডো তৈরি করুন। এই নতুন উইন্ডোর মধ্যে থেকে এখন যদি আপনি পছন্দসই ফোল্ডারে যান, তবে আপনি সফলভাবে এই উইন্ডোটিকে পছন্দসই ফোল্ডারে পরিবর্তন করতে পারবেন এবং এই ফোল্ডারের দুটি উইন্ডো থাকবে ।

একটি নতুন ফাইন্ডার উইন্ডোতে পছন্দসই ফোল্ডারে নেভিগেট করতে, যে কোনও পদ্ধতি কাজ করবে:

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

  • ফোল্ডারে ক্লিক করুন, যদি এটি পথ বারে বিদ্যমান থাকে (যদি সক্ষম করা থাকে, উইন্ডোর নীচে অবস্থিত)।

  • উইন্ডোর অন্তর্নির্মিত অনুসন্ধান বারটি ব্যবহার করুন

  • অথবা, কেবল ম্যানুয়ালি ফোল্ডারে নেভিগেট করুন।


অ্যাপলস্ক্রিপ্টে সমস্যা:

নিম্নলিখিত অ্যাপলস্ক্রিপ্ট কোডটি একটি নতুন ফাইন্ডার উইন্ডোতে একটি ফোল্ডার খুলবে:

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"

tell application "Finder"
    open targetFolder
    activate
end tell

ঠিক একইভাবে যেমন ফাইন্ডার অ-প্রোগ্রামাম্যাটিকভাবে আচরণ করে (উপরের সংজ্ঞায়িত হিসাবে), আপনি যদি এই কোডটি দ্বিতীয়বার চালিত করেন (পূর্বে তৈরি ফাইন্ডার উইন্ডোটি বন্ধ না করে), তবে পূর্বে তৈরি উইন্ডোটি সম্মুখভাগে আনা হবে।


কাঙ্ক্ষিত অ্যাপলস্ক্রিপ্ট সমাধান:

এখানে কাঙ্ক্ষিত আচরণ:

  • যদি কোনও উন্মুক্ত ফাইন্ডার উইন্ডোতে targetFolderইতিমধ্যে উপস্থিত থাকে (কোনও ন্যূনতম ফাইন্ডার উইন্ডো সহ), আমি অ্যাপলস্ক্রিপ্টটি একই (যেমন, একটি সদৃশ উইন্ডো) জন্য একটি নতুন উইন্ডো তৈরি করতে চাই ।targetFolder

আদর্শভাবে, আমি চাই ডুপ্লিকেট জানালা তৈরি করা, ছাড়া "কৌতুক" যে আমি উপরের delineated অবলম্বন করা (অর্থাত, একটি অবাধ খোলার অন্যান্য প্রথম ফোল্ডারের, আকাঙ্ক্ষিত ফোল্ডারের খোলার আগে)। যাইহোক, আমি বুঝতে পারি এটি সম্ভব না হয় (অর্থাত্ যদি প্রোগ্রামিক পদ্ধতিতে ম্যানুয়াল পদ্ধতিটি অবশ্যই তৈরি করতে পারে)।


1. আমি বুঝতে পারি যে এই আচরণটি কোনওভাবেই বাগ বা "আসল" সমস্যা নয়। অ্যাপল ইচ্ছাকৃতভাবে এই ক্রিয়াটি প্রোগ্রাম করেছিল; তারা সম্ভবত নির্ধারণ করেছিলেন যে বেশিরভাগ লোকের নিরর্থক ফাইন্ডার উইন্ডোগুলির প্রয়োজন হয় না বা তারা চায় না।


ওএস এক্স এল ক্যাপিটান, সংস্করণ 10.11.6।


উত্তর:


3

আমি মনে করি এই কোডটি আপনি যা চান তা করে।

কোড:

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"

tell application "Finder"
    set finderFolder to item targetFolder
    set lstTargets to target of every Finder window
    if {finderFolder} is in lstTargets then
        set target of (make new Finder window) to targetFolder
    end if
end tell

এই সমাধানটি ঠিক আমার ইচ্ছা মতো করে। এটি আমার আদর্শ সমাধান; স্ক্রিপ্টটি প্রথমে অন্য ফোল্ডারটি খোলা না করে ফোল্ডারটি খুলবে। এটি আমার পছন্দসই সন্ধানকারীকে " এরূপ দেখুন" পদ্ধতিটি (যা তালিকার ভিউ হিসাবে ঘটে ) সংরক্ষণ করে। অবশেষে, আমি বুঝতে পেরেছি যে একটি if statementইতিমধ্যে ফোল্ডারটি খোলা থাকার ক্ষেত্রে এটি ধরার প্রয়োজন নেই, কারণ আপনার set target ofপদ্ধতি নির্বিশেষে সঠিকভাবে কাজ করে। ধন্যবাদ!
রুবিকের গোলক

0

আপনি যেখানে যেতে চান এই সমাধানটি আপনাকে পেয়ে যায় তবে এটি কার্যকরভাবে ব্যবহার করে না। উইন্ডোটি তৈরি করার সাথে সাথে আমি "টার্গেট" সম্পত্তি সেট করার চেষ্টা করেছি, তবে এর কোনও প্রভাব ছিল না। আমি সেই অংশটি স্ক্রিপ্টে রেখেছি কিন্তু আপনার উল্লেখের জন্য মন্তব্য করেছি।

set targetFolder to ((path to desktop) as text) & "testFolder:"

tell application "Finder"
    set aWin to make new Finder window --with properties {target:targetFolder}
    set aWin's target to targetFolder
end tell

আমি ডু শেল স্ক্রিপ্টের সাথে কমান্ড লাইনে কল করেও এটি চেষ্টা করেছি, তবে উপরের "সমস্যা" তালিকাভুক্ত করার মতোই এটির প্রভাব রয়েছে।


0

revealকমান্ডটির ব্যবহার এড়াতে কমান্ডটি ব্যবহার করুন open:

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"
tell application "Finder"
    reveal targetFolder
    activate
end tell

ক্যাভ্যাট: এটি সর্বদা কলাম ভিউতে উইন্ডোটি খুলবে

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